码迷,mamicode.com
首页 > 其他好文 > 详细

<爬虫>常见网址的爬虫整理

时间:2020-07-16 18:25:37      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:port   变化   实现   amp   世界   __init__   chrome   请求   int   

借鉴大佬的爬虫资料,GitHbub链接:https://github.com/Kr1s77/awesome-python-login-model

整理一下,给自己学习爬虫使用

001.百度贴吧

# 是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python3解释器;
# !/usr/bin/python3
# -*- coding: utf-8 -*-


"""
请求URL分析	https://tieba.baidu.com/f?kw=魔兽世界&ie=utf-8&pn=50
请求方式分析	GET
请求参数分析	pn每页50发生变化,其他参数固定不变
请求头分析	只需要添加User-Agent
"""

# 代码实现流程
# 1. 实现面向对象构建爬虫对象
# 2. 爬虫流程四步骤
# 2.1 获取url列表
# 2.2 发送请求获取响应
# 2.3 从响应中提取数据
# 2.4 保存数据

import requests


class TieBa_Spier():

	def __init__(self, max_page, kw):
		# 初始化
		self.max_page = max_page  # 最大页码
		self.kw = kw  # 贴吧名称
		self.base_url = "https://tieba.baidu.com/f?kw={}&ie=utf-8&pn={}"
		self.headers = {
			"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
		}

	def get_url_list(self):
		"""获取url列表"""
		# 根据pn每50进入下一页,构建url列表
		return [self.base_url.format(self.kw, pn) for pn in range(0, self.max_page * 50, 50)]

	def get_content(self, url):
		"""发送请求获取响应内容"""
		response = requests.get(
			url=url,
			headers=self.headers
		)
		# print(response.text)
		return response.content

	def save_items(self, content, idx):
		"""从响应内容中提取数据"""
		with open(‘{}.html‘.format(idx), ‘wb‘) as f:
			f.write(content)
		return None

	def run(self):
		"""运行程序"""
		# 获取url_list
		url_list = self.get_url_list()
		for url in url_list:
			# 发送请求获取响应
			content = self.get_content(url)

			# 保存数据,按照url的索引+1命名保存的文件
			items = self.save_items(content, url_list.index(url) + 1)

			# 测试
			# print(items)


if __name__ == ‘__main__‘:
	# 最大页码,贴吧名
	spider = TieBa_Spier(2, "神无月")
	spider.run()

 

 

<爬虫>常见网址的爬虫整理

标签:port   变化   实现   amp   世界   __init__   chrome   请求   int   

原文地址:https://www.cnblogs.com/shuimohei/p/13323800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!