python爬虫教程电子版资源下载python爬虫教程爬图片简书
下载地址 https://share.weiyun.com/0UhC6msn
资料目录 30个小时搞定Python网络爬虫视频课程(全套详细版) Python网络爬虫工程师系列培训视频课程(65集全) 廖雪峰商业爬虫(含课件、案例和练习) 零基础Python实战 四周实现爬虫网站 《Python 3网络爬虫开发实战 》崔庆才著.pdf 《Python网络爬虫从入门到实践》 庄培杰编著.pdf Python 3爬虫、数据清洗与可视化实战_零一等编著.pdf Python3网络爬虫数据采集 陶俊杰 翻译.pdf Python爬虫开发与项目实战 范传辉 编著.pdf Python爬虫大数据采集与挖掘-微课视频版 曹剑平 编著.pdf python网络爬虫从入门到实践 唐松等.pdf 网络爬虫-Python和数据分析 王澎著.pdf 用Python写网络爬虫 李斌 翻译.pdf 自己动手写网络爬虫 罗刚等 编著.pdf Python项目案例开发从入门到实战:爬虫、游戏和机器学习 by 郑秋生 夏敏捷 举例 urllib 库详解 urllib 库是 Python 内置的一个 HTTP 请求库。在 Python 2.x 中,是由 urllib 和 urllib2 两 个库来实现请求发送的,在 Python 3.x 中,这两个库已经合并到一起,统一为 urllib 了。urllib 库由四个模块组成。 request 模块:打开和浏览 URL 中的内容。 error 模块:包含 urllib.request 发生的错误或异常。 parse 模块:解析 URL。 robotparser 模块:解析 robots.txt 文件。 官方文档:https://docs.python.org/3/library/urllib.html。
设置连接超时 urlopen()函数中有一个可选参数 timeout,单位为秒,作用是如果请求超出了这个时间还没有得到响应,就会抛出异常。如果不设置,会使用全局默认时间,代码示例如下: urllib.request.urlopen(novel_req, timeout=20)
延迟提交数据 通常情况下,服务器都会对请求的客户端 IP 进行记录。如果在一定时间内访问次数达到了一个阈值,服务器会认为该 IP 地址就是爬虫,会弹出验证码验证,或者直接对 IP 进行封禁。 为了避免 IP 被封,一个最简单的方法就是延迟每次发起请求的时间,直接用 time 模块的 sleep(秒)函数休眠即可。
设置代理 如果遇到限制 IP 访问频率的情况,我们可以用上面这种延时发起请求的方法,但是有一些站点是限制访问次数的。比如,一个 IP 只能在一个时间间隔内访问几次,超过限制次数后 IP 会被 Block。另外,采用休眠访问的效率极低,对这种情况更好的解决方案是使用代码,通过轮换代理 IP 去访问目标网站。 关于如何获取代理 IP,后面会详细介绍,这里只介绍怎样设置代理 IP。代码示例如下: import urllib.request # 查询IP的网址 ip_query_url = "http://ip.chinaz.com/" # 1.创建代理处理器,ProxyHandler参数是一个字典{类型:代理IP:端口} proxy_support = urllib.request.ProxyHandler({'http': '219.141.153.43:80'}) # 2.定制,创建一个opener opener = urllib.request.build_opener(proxy_support) # 3.安装opener urllib.request.install_opener(opener) # 请求头 headers = { 'User-Agent': 'User-Agent:Mozilla/5.0 (X11; Linux x86_64)' ' AppleWebKit/537.36 (KHTML, like Gecko)' ' Chrome/63.0.3239.84 Safari/537.36', 'Host': 'ip.chinaz.com' } req = urllib.request.Request(ip_query_url, headers=headers) resp = urllib.request.urlopen(req, timeout=20) html = resp.read().decode('utf-8') print(html) 部分代码执行结果如下: <p class="getlist pl10"><span>您来自:</span>219.141.153.43 <span class="pl10">所 在 区 域 : </span> 北 京 市 电 信 <a href="http://tool.chinaz.com/contact" target="_blank" class="col-blue02 pl5">(纠错)</a></p>
|