手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > python教程 > 文章 当前位置: python教程 > 文章

python爬虫教程电子版资源下载python爬虫教程爬图片简书

时间:2022-05-11    点击: 次    来源:网络    作者:佚名 - 小 + 大

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>

上一篇:python爬虫教程零基础python爬虫教程pptpython爬虫教程 xpath

下一篇:没有了

推荐阅读
声明 | 联系我们 | 关于我们
备案ICP编号  |   QQ:2151239526  |  地址:北京市东城区  |  电话:16605168200  |