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

python爬虫教程零基础python爬虫教程pptpython爬虫教程 xpath

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

python爬虫教程零基础python爬虫教程pptpython爬虫教程 xpath


下载地址

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 郑秋生 夏敏捷


举例

抓取二进制文件
直接把二进制文件写入文件即可,代码示例如下:
import urllib.request
pic_url = "https://www.baidu.com/img/bd_logo1.png"
pic_resp = urllib.request.urlopen(pic_url)
pic = pic_resp.read()
with open("bd_logo.png", "wb") as f:
f.write(pic)
代码执行结果如下:
...
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed: unable to get local issuer certificate (_ssl.c:1045)>
结果并没有像我们预期那样把图片下载下来,而是发生了报错,原因是当 urlopen()打开一个 HTTPS 链接时,会验证一次 SSL 证书,当目标网站使用的是自签名的证书时,就会报这样的错误。解决这个错误有以下两种方法。
import ssl
# 方法一:全局取消证书验证
ssl._create_default_https_context = ssl._create_unverified_context
# 方法二:使用ssl创建未经验证的上下文,在urlopen()中传入上下文参数
context = ssl._create_unverified_context()
pic_resp = urllib.request.urlopen(pic_url,context=context)
选择其中一种方法加入代码中,代码执行后就可以看到百度的图标被下载到本地了。
另外,还可以调用 urllib.request.urlretrieve()函数直接进行下载,代码示例如下:
urllib.request.urlretrieve(pic_url, 'bd_logo.png')

修改请求头
有一些站点为了避免有人使用爬虫恶意抓取信息,会进行一些简单的反爬虫操作,比如通过识别请求头里的 User-Agent 来检查访问来源是否为正常的访问途径,还可检查 Host请求头等,我们可以修改请求头来模拟正常的访问。Request 中有个 headers 参数,可通过如下两种方法进行设置:
(1)把请求头都塞到字典里,在实例化 Request 对象的时候传入;
(2)通过 Request 对象的 add_header()方法一个个添加。
代码示例如下:
import urllib.request
# 修改请求头信息
novel_url = "http://www.biqukan.com/1_1496/"
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '
'AppleWebKit/537.36 (KHTML, like Gecko)'
' Chrome/63.0.3239.84 Safari/537.36',
'Referer': 'http://www.baidu.com',
'Connection': 'keep-alive'}
novel_req = urllib.request.Request(novel_url, headers=headers)
novel_resp = urllib.request.urlopen(novel_req)
print(novel_resp.read().decode('gbk'))
代码执行结果如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>龙王传说最新章节_龙王传说无弹窗_笔趣阁</title>
<meta name="keywords" content="龙王传说,龙王传说最新章节" />
...

上一篇:python爬虫教程网站Python爬虫教程书籍python爬虫教程 txt

下一篇:没有了

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