(一)实现爬虫的简单思路

文章目录

(一)写爬虫的一些套路

1. 准备url

1.1 准备start_url

(1) url地址规律不明显,或总数不确定时
李毅贴吧,点击下一页时,对应的url地址的pn会增加50,但不确定李毅吧的总数是多少,故需要准备start_url
start_url = https://tieba.baidu.com/f?kw={}&ie=utf-8&pn={}
使用 start_url.format 对{}进行替换,实现动态更换页码

(2)通过代码提取下一页的url
1)xpath(重点)
xpath("//a[text()='下一页']/@href")  直接获取到下一页的url地址
图中可以看到下一页的url地址对应的pn=100,即第三页

在这里插入图片描述

2)寻找url地址,部分参数在当前的响应中,比如,当前页码和总的页码数在当前的响应中
可以看到每次请求的数量为count=18 总数total=1015 
故代码中 需要获取total,然后用一个num来记录一共请求的数量(num+=18)
根据 num<total 进入循环,当num>=total时,则循环结束,所有的页面都被抓取下来。

在这里插入图片描述

1.2 准备 url_list

(1) 页码总数明确
(2)url地址规律明显
举一个栗子 糗事百科
url_temp = https://www.qiushibaike.com/text/page/{}/
url_list = url.temp.format(i) for i in range(1,14)
这样可以拿到糗事百科所有的链接组成的列表
for url in url_list   就可以拿到每一个url地址

在这里插入图片描述

2. 发送请求,获取响应

1.requests.get(url,headers,params,proxies,auth,,cookie..)
params : 将参数放在url中传递,可以使用params
	比如    kw = {'wd':'长城'}   requests.get("https://www.baidu.com/s?",headers= headers,params=kw) 相当于请求https://www.baidu.com/s?wd='长城'
proxies :添加代理ip
	比如:proxies={'http':"http://12.34.56.79:9527",
	                     "https":"https://12.34.56.79:9527"}
	           requests.get(url,headers=headers,proxies=proxies)
auth:账户密码登录
	比如:auth={"test","123465"}
	requests.get(url,headers=headers,auth=auth)
cookie:添加cookie
	比如:
	test.txt 里面直接放有  
		__cur_art_index=1600; _ga=GA1.2.97777798.1555168736; _gid=GA1.2.607144467.1555168736
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值