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中为feedparser设置超时时间避免堵塞
Sep 28 Python
python实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
Python实现的文本编辑器功能示例
Jun 30 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
python使用布隆过滤器的实现示例
Aug 20 Python
python map比for循环快在哪
Sep 21 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
建立动态的WML站点(三)
2006/10/09 PHP
php 保留小数点
2009/04/21 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
js实现录音上传功能
2019/11/22 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
python可视化实现代码
2019/01/15 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
自主实习接收函
2014/01/13 职场文书
年会活动策划方案
2014/01/23 职场文书
同居协议书范本
2014/04/23 职场文书
公司管理建议书
2015/09/14 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
世界文化遗产导游词
2019/08/07 职场文书