python爬虫爬百度贴吧网页流程

python爬虫爬百度贴吧网页流程

实现步骤
  1. 查看是否为静态页面
    右键 - 查看网页源代码 - 搜索数据关键字
  2. 找URL查询字符串规律
  3. 获取网页内容
  4. 提取所需数据
  5. 保存(本地文件、数据库)
代码
from urllib import request,parse
import time
import random
#导入生成User-Agent的模块
from fake_useragent import UserAgent
  
class TiebaSpider(object):
	def __init__(self):
		self.url = 'http'://tieba.baidu.com/f?kw={}&pn={}'

	#1.发请求
	def get_html(self,url):
		#每次发请求,随机使用生成的 User-Agent
		headers = {'User-Agent':UserAgent().random)}
		#包装请求头
		req = request.Request(url=url,headers=headers)
		#发请求
		resp = request.urlopen(req)
		#读取数据
		html = resp.read().decode()

		return html
	
	#2.解析
	def parse_html(self):
		pass
	
	#3.保存
	def save_html(self,filename,html):
		#创建一个文件,文件名为filename(以只读方式打开一个文件,文件不存在则创建),f表示该文件对象
		with open(filename,'w') as f:
			#将读取的html内容写入文件filename中
			f.write(html)

	#4.入口函数
	def run(self):
		name = input('请输入贴吧名:')	# xxx吧
		begin = int(input('请输入起始页:')
		end = int(input('请输入终止页:')
		
		#编码
		params = parse.quote(name)
		
		#for 循环 - 拼接地址,发请求,保存
		for page in range(begin,end+1):
		
			#拼接url
			#pn要在查询字符串中找规律,找到的页面规律为第一页从0开始,每页pn数字间隔 50
			pn = (page-1)*50
			url = self.url.format(params,pn)
			
			#发请求
			html = self.get_html(url)

			#保存
			filename = name + '-第%s页.html' % str(page)
			self.save_html(filename,html)
			print('第%d页抓取成功' % page)
			
			#每抓取1页随机休眠 0-1秒钟
			#time.sleep(random.randint(1,2))
			time.sleep(random.uniform(0,1))

if __name__ == '__main__':
	spider = TiebaSpider()
	spider.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值