python爬虫学习笔记_python网络爬虫学习笔记(1)
发布日期:2021-06-24 13:33:28 浏览次数:2 分类:技术文章

本文共 1045 字,大约阅读时间需要 3 分钟。

本文实例为大家分享了python网络爬虫的笔记,供大家参考,具体内容如下

(一) 三种网页抓取方法

模块使用C语言编写,速度快,但是很脆弱,可能网页更新后就不能用了。

2、Beautiful Soup

模块使用Python编写,速度慢。

安装: pip install beautifulsoup4

3、 Lxml

模块使用C语言编写,即快速又健壮,通常应该是最好的选择。

(二)Lxml安装 pip install lxml

如果使用lxml的css选择器,还要安装下面的模块 pip install cssselect

(三)使用lxml示例 import urllib.request as re

import lxml.html

#下载网页并返回HTML

def download(url,user_agent='Socrates',num=2):

print('下载:'+url)

#设置用户代理

headers = {'user_agent':user_agent}

request = re.Request(url,headers=headers)

try:

#下载网页

html = re.urlopen(request).read()

except re.URLError as e:

print('下载失败'+e.reason)

html=None

if num>0:

#遇到5XX错误时,递归调用自身重试下载,最多重复2次

if hasattr(e,'code') and 500<=e.code<600:

return download(url,num-1)

return html

html = download('https://tieba.baidu.com/p/5475267611')

#将HTML解析为统一的格式

tree = lxml.html.fromstring(html)

# img = tree.cssselect('img.BDE_Image')

#通过lxml的xpath获取src属性的值,返回一个列表

img = tree.xpath('//img[@class="BDE_Image"]/@src')

x= 0

#迭代列表img,将图片保存在当前目录下

for i in img:

re.urlretrieve(i,'%s.jpg'%x)

x += 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

转载地址:https://blog.csdn.net/weixin_33212263/article/details/113672628 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:区块链需要用到mysql吗_什么条件下才需要区块链
下一篇:mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 21时18分39秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

设计模式——装饰者(Decorator)模式DEMO——游戏角色的装饰者模式实现 2019-04-28
设计模式——装饰者(Decorator)模式DEMO——成绩汇报的装饰者模式实现 2019-04-28
《软件工程》实验报告——软件设计 2019-04-28
《操作系统》实验报告——进程调度的模拟 2019-04-28
JAVA——电子商城三级分类目录查询-递归树形数据结构 2019-04-28
Spring Security——根据请求Header[Accept]不同返回不同类型资源解决方案 2019-04-28
LeetCode176 第二高的薪水 2019-04-28
LeetCode177 第N高的薪水 2019-04-28
TensorFlow——本地加载fashion-mnist数据集 2019-04-28
TensorFlow——[基本图像分类]fashion-mnist及mnist_reader.py运行错误[TypeError: Invalid dimensions for image data] 2019-04-28
TensorFlow 教程——基本分类:对服装图像进行分类 2019-04-28
TensorFlow 教程——电影评论文本分类 2019-04-28
Eclipse——通过Eclipse Marketplace安装SVN插件subclipse以及简单使用 2019-04-28
Mybatis Plus——插入或更新数据时自动填充更新数据解决方案 2019-04-28
《数据库原理及应用》实验报告——熟悉数据库管理工具、数据库和表的基本操作 2019-04-28
TensorFlow 教程——手写数字识别 2019-04-28
Python——中国大学MOOC——神经网络与深度学习——Matblotlib绘图基础 2019-04-28
SQL——字段分组合并 2019-04-28
TensorFlow 教程——中国大学MOOC——神经网络与深度学习——一元线性回归 2019-04-28
Linux——Linux C语言编程基础知识 2019-04-28