python网络爬虫学习笔记(1)


Posted in Python onApril 09, 2018

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

(一)   三种网页抓取方法

1、 正则表达式:

模块使用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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python爬取成语接龙类网站
Oct 19 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python数据归一化及三种方法详解
Aug 06 Python
Python帮你识破双11的套路
Nov 11 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Jupyter加载文件的实现方法
Apr 14 Python
python实现文字版扫雷
Apr 24 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
python软件都是免费的吗
Jun 18 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 #Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 #Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 #Python
解决Python的str强转int时遇到的问题
Apr 09 #Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 #Python
Python序列循环移位的3种方法推荐
Apr 09 #Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 #Python
You might like
十天学会php之第四天
2006/10/09 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
PHP与以太坊交互详解
2018/08/24 PHP
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
Python中字符串的修改及传参详解
2016/11/30 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
pandas数据处理进阶详解
2019/10/11 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
python 读取串口数据的示例
2020/11/09 Python
应届毕业生的自我鉴定
2013/11/13 职场文书
求职信模板怎么做
2014/01/26 职场文书
财务担保书范文
2014/04/02 职场文书
初中生期末评语大全
2014/04/24 职场文书
人事任命书格式
2014/06/05 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
Java 数组内置函数toArray详解
2021/06/28 Java/Android