爬取西刺代理流程图
背景
- 环境:python3.6
- 模块:
- urllib.request(获取html)
- chardet(判断html的编码)
- bs4.Beautiful(提取代理IP)
- github地址
(https://github.com/tonyxinminghui/spider/blob/master/xici_spider.py)
获取html
难点
- 选择用什么模块获取html
- 西刺代理的网址不伪造header是无法获取正确的html的。一般会返回503
- python3内存中字符串的编码是Unicode的形式,我们一般获取的html都是编码过的,我们需要解码。
- 3引出4,如何判断html的编码。
解决方案
由于自己异常稀少的知识储量,选择了urllib.request(PS:网上大家都说requests是为人类写的模块,很多方法名都很人性化,可惜我不是很熟悉,以后有机会可以,用request重写一下。)
有关伪造header,urllib.request中相关的接口是
class urllib.request.Request(url[, data][, headers][, origin_req_host][, unverifiable])
这里列一下header的形式,具体接口参数,详见参考复制代码1
2
3
4forged_header = { 'User-Agent': XXXX, 'Referer' : XXXX, 'Host'
最后
以上就是大气电脑最近收集整理的关于爬虫小白第一篇 西刺代理的全部内容,更多相关爬虫小白第一篇内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复