入门爬虫之百度贴吧页面爬去

爬取贴吧十页内容,保存到指定文件夹下:分别名字:第一页html,第二页html....

代码如下:

from urllib import request,parse  					导入请求包,和转码包

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

url1='https://tieba.baidu.com/f?'  	百度搜索一个贴吧网址,去掉动态参数,
									留下静态固定网址,配置检索参数,并
									转码为后续完整URL做准备
name=input('输入检索名字:')
source={"kw":name}
url2=parse.urlencode(source)
											先把静态url与检索参数拼凑到一块,
											但不完善,还缺页码,再继续补上
url3=url1+url2
for page in range(1,11):
    pn=(page-1)*50
    full_url=url3+'&pn='+str(pn)     		把最终的url拼凑完整
    res=request.Request(url=full_url,headers=headers)
    response=request.urlopen(res)  			把完整的url请求给出一个响应
 									把该响应写入指定文件下,并创造文件内容。

	俩种写入文件方式
    with open('begin_body/第%s页.html'%page,'w',encoding='utf-8') as f:
        f.write(response.read().decode('utf-8'))
    request.urlretrieve(url=full_url,filename='第%s页.html'%page)

爬虫步骤

1、确定网站内数据的加载方式(数据局部刷新、页面刷新)
区别:局部刷新 页面的url不会发生改变 页面刷新 页面的url会发生改变

1、局部刷新

1、F12 --> NetWork --> XHR
     2、清空所有请求
     3、点击加载更多或者下一页
     4、新出来的地址就是我们需要发送的请求地址

2、页面刷新

    1、直接点击下一页
    2、观察页面url的变化
    3、去掉没用的信息
    4、拼接url

2、构造请求头
1、添加UA字段
2、如果数据不能正常返回 添加refere字段
3、如果数据还不能正常返回 添加cookie字段

3、如果是POST方式 那么需要 构造参数 观察参数的传递格式(字典/json串) 然后进行编码
4、构造请求(url headers data)
5、发起请求
6、读取数据(注意编解码) 如果是json字符串 需要将json字符串转换为字典
7、处理数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值