本实例只要注意点在cookies的传递过程。
示例一:爬取数据(携带请起头)
import requests
from bs4 import BeautifulSoup
r1 = requests.get(
url='https://dig.chouti.com/',
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
)
soup = BeautifulSoup(r1.text, 'html.parser')
使用headers
属性,可以在其中输入在浏览器中查看网页(F12
)得到Response Headers
的信息,输入到headers中,headers是一个dict,可以输入多个Response Headers
中的信息,由此,可以把一些带有反爬虫技术的网页读出来。
例如,打开浏览器,点击F12
:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190317172418195.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI2NTk5OA==,size_16,color_FFFFFF,t_70)
标签对象
content_list = soup.find(name='div', id='content-list')
print(content_list)
item_list = content_list.find_all(name='div', attrs={'class': 'item'})
for item in item_list:
a = item.find(name='a', attrs={'class': 'show-content color-chag'})
print(a.text.strip())
# print(a.text)
示例二:点赞
import request
1. 查看首页
r1 = requests.get(
url='https://dig.chouti.com/',
headers={
'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
},
Cookie = r1.cookies.get_dict()
)
2. 提交用户名和密码
r2 = requests.post(
url='https://dig.chouti.com/login',
headers={
'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
},
data={
'phone':'8613121758648',
'password':'woshiniba',
'oneMonth':1
},
cookies=r1.cookies.get_dict()
)
点击登陆按键,通过F12
查看network,其中,此时的requests.get
变为request.post
,由获取信息,变为提交信息。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190317172601632.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI2NTk5OA==,size_16,color_FFFFFF,t_70)
同时,还需要把密码账户添加到data
属性中,data
同headers一样,都是一个dict。把Form Data中的信息全部填写如data
属性中去。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190317173107140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI2NTk5OA==,size_16,color_FFFFFF,t_70)
3. 点赞功能
r3 = requests.post(
url='https://dig.chouti.com/link/vote?linksId=20435396',
headers={
'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
},
cookies=r1.cookies.get_dict()
)
print(r3.text)
其中,在有的网页中,Cookie的值在登陆完成之后,得到的Cookie是不同的,再点在的时候,不能使用登陆之后的,只能使用第一次打开首页时候得到的Cookie,即上面代码中的r1.cookies.get_dict()
。