文档开发者中心
我的

python爬虫使用Cookie的两种方法

我们用python写爬虫代码时,如何去爬一个需要登录用户名和密码的页面获取信息呢?这里我们先来了解下登录后的网页是如何继续访问业务以获取相关的权利。


当用户首次登录请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息。


因此我们使用登录以后的Cookie。自己编辑Cookie访问Web服务器。网络爬虫中Cookie的两种使用方式,代码中网页已经不存在,但是可以自己在其他网页中尝试。我们使用的是登录之后的Cookie。


如何查看登录后的网站的cookies信息呢?登录网站后点击右键,选择“检查元素”,找到network属性,找到一串cookies信息。 如:



获取到cookies后,我们可以用两种方法进行使用:

1、直接将Cookie写在header头部

# coding:utf-8 
import requests
from bs4 import BeautifulSoup
cookie = ihelp_portal_index_M002975=init_init_block;usphidden=true;_ha_id..0c9d=F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B;_ha_ses..0c9d=b5680415e57a0736fd6d9655da0228a770707d4d;login_logFlag=in;suid=F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B;login_uid=F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B;_sid_=4F-62-0C-B3-6C-B5-B2-77-51-B7-C6-A8-1F-26-46-6D-E9-76-62-74-D6-5B-F8-0F-42-40-42-BC-E1-B5-0E-93-A6-2E-AF-33-F8-BF-FA-22;login_sip=7E-1A-97-8E-3D-46-19-E3-36-7B-EB-94-78-CF-76-E5-31-DD-35-52-A5-7C-E0-59;login_sid=4F-62-0C-B3-6C-B5-B2-77-51-B7-C6-A8-1F-26-46-6D-E9-76-62-74-D6-5B-F8-0F-42-40-42-BC-E1-B5-0E-93-A6-2E-AF-33-F8-BF-FA-22;LtpaToken=xsOHrCTLIAlUVP2XBzryGj7RmkqVXxsnzNMFLll+GTiC5R9KP/nrD8JUlyREAUAQr9xCLoL4Xdkr9tWP7I9SwuQdY3XpWxSwvlu4b3hdgN44bripPctg/GBhfZr3pv7+StUO281vrlxDFFDJyQ5XPvf4pbOBxZdY54DDnKbQwsn+6WIWSGKdswcR39LyGGBaKfjEc2mi/KOOYn0fGhpovltXu3oxYDl3QmIYNIDSrIui8FA32D2thJfG9YEim/DfeQXqJQ3BDSzCtN6QqXgsnsGelwAUudNbdwe1yY3FUXxnbVZDqIfKnrR1wljTf0r2PwcWKkYAS1PVuzVIVKHZQIo8a8Gpd8bvze0LgRfB4pU6i3oOZebA1w==;lang=zh;__hau=SUPPORT.1563506466.1302445886;v1st=16C22A2EB7FC7CF0;sensorsdata2015jssdkcross={"distinct_id":"16c46ba49521-038a420ed966aa4-2c554758-1294854-16c46ba49536","$device_id":"16c46ba49521-038a420ed966aa4-2c554758-1294854-16c46ba49536","props":{"$latest_traffic_source_type":"直接流量","$latest_referrer":"","$latest_referrer_host":"","$latest_search_keyword":"未取到值_直接打开"}};bishengSID=0000U2DS4iBlZff208JpzEdf1QX=19grdfk5i;SCORESESSIONID=f2aac09c-51f3-49e8-a697-9a39dbb065bb;hwkm_sid=VsF-DJGTydlOWzpYeezRuapEB0qAo-CF;hwkm_sid.sig=04Gie-iwTWMvHceayR5639x3uWQ''' header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Geck o) Chrome/53.0.2785.143 Safari/537.36',
'Connection': 'keep-alive',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Cookie': cookie}
url = 'http://3ms.huawei.com/km/groups/2026461/my?l=zh-cn'
wbdata = requests.get(url,headers=header).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)

2、使用requests插入Cookie

# coding:utf-8 
import requests
from bs4 import BeautifulSoup
cookie = {
'ihelp_portal_index_M002975':'init_init_block',
'usphidden':'true',
'_ha_id..0c9d':'F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B',
'_ha_ses..0c9d':'b5680415e57a0736fd6d9655da0228a770707d4d',
'login_logFlag':'in',
'suid':'F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B',
'login_uid':'F6-36-48-5E-25-4A-5F-E3-DD-80-3A-2E-CE-AA-89-6B',
'_sid_':'4F-62-0C-B3-6C-B5-B2-77-51-B7-C6-A8-1F-26-46-6D-E9-76-62-74-D6-5B-F8-0F-42-40-42-BC-E1-B5-0E-93-A6-2E-AF-33-F8-BF-FA-22',
'login_sip':'7E-1A-97-8E-3D-46-19-E3-36-7B-EB-94-78-CF-76-E5-31-DD-35-52-A5-7C-E0-59',
'login_sid':'4F-62-0C-B3-6C-B5-B2-77-51-B7-C6-A8-1F-26-46-6D-E9-76-62-74-D6-5B-F8-0F-42-40-42-BC-E1-B5-0E-93-A6-2E-AF-33-F8-BF-FA-22',
'LtpaToken':'xsOHrCTLIAlUVP2XBzryGj7RmkqVXxsnzNMFLll+GTiC5R9KP/nrD8JUlyREAUAQr9xCLoL4Xdkr9tWP7I9SwuQdY3XpWxSwvlu4b3hdgN44bripPctg/GBhfZr3pv7+StUO281vrlxDFFDJyQ5XPvf4pbOBxZdY54DDnKbQwsn+6WIWSGKdswcR39LyGGBaKfjEc2mi/KOOYn0fGhpovltXu3oxYDl3QmIYNIDSrIui8FA32D2thJfG9YEim/DfeQXqJQ3BDSzCtN6QqXgsnsGelwAUudNbdwe1yY3FUXxnbVZDqIfKnrR1wljTf0r2PwcWKkYAS1PVuzVIVKHZQIo8a8Gpd8bvze0LgRfB4pU6i3oOZebA1w':'':'',
'lang':'zh',
'__hau':'SUPPORT.1563506466.1302445886',
'v1st':'16C22A2EB7FC7CF0',
'sensorsdata2015jssdkcross':'{"distinct_id":"16c46ba49521-038a420ed966aa4-2c554758-1294854-16c46ba49536","$device_id":"16c46ba49521-038a420ed966aa4-2c554758-1294854-16c46ba49536","props":{"$latest_traffic_source_type":"直接流量","$latest_referrer":"","$latest_referrer_host":"","$latest_search_keyword":"未取到值_直接打开"}}',
'bishengSID':'0000U2DS4iBlZff208JpzEdf1QX:19grdfk5i',
'SCORESESSIONID':'f2aac09c-51f3-49e8-a697-9a39dbb065bb',
'hwkm_sid':'VsF-DJGTydlOWzpYeezRuapEB0qAo-CF',
'hwkm_sid.sig':'04Gie-iwTWMvHceayR5639x3uWQ'}
url = 'http://3ms.huawei.com/km/groups/2026461/my?l=zh-cn'
wbdata = requests.get(url,cookies=cookie).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)


这样我们就轻松的使用Cookie获取到了需要登录验证后才能浏览的网页和资源了。上面的Cookie是从自己浏览的网页中复制粘贴得到的。


——————————————————————————


BY:HW-CJ

点赞
收藏
回复
3
分享
举报
浏览1613 发布于2019-10-23 08:55未知归属地
全部评论
最多点赞
最新发布
最早发布

顶顶顶顶,好文章顶上去

3楼回复于2019-10-23 08:58 未知归属地

有不同的观点,可以回帖分享啊

2楼回复于2019-10-23 08:58 未知归属地

python爬虫使用cookie的两种方法,你知道么?

1楼回复于2019-10-23 08:57 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

目录 收起
1、直接将Cookie写在header头部
2、使用requests插入Cookie
了解社区公约,与您携手共创和谐专业的开发者社区。