爬虫之cookie处理
2023-09-11 14:19:18 时间
- 一般我们请求的时候,请求头的信息不够就会导致访问不成功
- 在请求的时候有两个比较重要的信息
cookie
、referer
两个重要的信息
cookie
携带着你的登录信息,如果我们登录之后有cookie
,那么在请求的时候应该在请求头上携带cookie
的信息referer
一般用来判断当前路径是不是由上一个路径进来的,一般做图片防盗链,他所表示的是上一个页面
网页编码
当我们进行爬虫的时候一定要注意网站网页的编码方式,然后进行解码
查看网页的编码
一般有些界面,特别是登录界面,他的编码方式与其他页面的编码方式不同
- 在浏览器的页面上面右击
- 选择查看网页源代码
- 查看编码方式
例子
我们写一个微博的qq空间的数据爬取
一般我们打开一个url,他的请求表头都是我们需要的
- 一般带冒号开口的都是我们不需要的数据,我们在定制请求头的时候可以直接删掉
- 一般也不需要
accept-encoding
,特别是gzip
属性,他表示压缩,这样会导致我们进行解码时候的一些错误
import urllib.request
url = 'https://user.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/main_page_cgi?uin=2211986234¶m=3_2211986234_0%7C8_8_2211986234_0_1_0_0_1%7C16&g_tk=609298747&g_tk=609298747'
headers = {
'accept': '*/*',
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': '_ga=GA1.2.677263688.1626059546; pgv_pvid=3396846315; RK=cBzkAtK/7r; ptcz=28c2a5494b6158f2c08229ef9e241d2227d875e894727616ee46bc3ca856f0da; fqm_pvqid=4dd098fe-4ed0-4b40-9df4-0fbdcc0747bb; QZ_FE_WEBP_SUPPORT=1; cpu_performance_v8=0; __Q_w_s__QZN_TodoMsgCnt=1; tvfe_boss_uuid=9a642628d3ec3cfd; ptui_loginuin=2211986234; _qpsvr_localtk=0.37713367706254286; pgv_info=ssid=s8091044446; uin=o2211986234; skey=@LldMYGHaY; p_uin=o2211986234; pt4_token=N*0b5d5l8RdDISQm0nVue09kPQfMo*GUtvnrYkZd5d0_; p_skey=0XATmUfNk3J9AkBrlFHbnZhC9LgzsK62PnX39wlf0fg_; Loading=Yes; qz_screen=1536x864; 2211986234_todaycount=0; 2211986234_totalcount=7537',
'referer': 'https://user.qzone.qq.com/2211986234/main',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
# 将数据保存到本地
with open('something.json', 'w', encoding='utf-8')as fp:
fp.write(content)
通过上面的代码,我们可以拿到这个接口下的数据
相关文章
- 第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies
- 用Python写简单的爬虫
- 爬虫的难点?什么是高级的爬虫?
- Python - 网络爬虫(Web Scraping)
- 已解决selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain: Cookie ‘
- Python爬虫基础:初探selenium——动态网页&静态网页
- 持续维护中|最全数据分析资料汇总(趣味Python、商业数据分析、爬虫、高效工具等等)
- 设计爬虫Hawk背后的故事
- 大规模爬虫流程总结
- Python爬虫:Scrapy中runspider和crawl的区别
- Python爬虫入门之爬虫解析提取数据的四种方法
- python 爬虫 循环分页
- Python pyppeteer通过cookie获取数据(cookie爬虫)
- Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片
- 第一讲:最能入门的爬虫教程(Python实现)