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的单元测试
Apr 28 Python
python中的闭包用法实例详解
May 05 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
python调用百度语音REST API
Aug 30 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
python数据爬下来保存的位置
Feb 17 Python
Python的property属性详细讲解
Apr 11 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
轻松修复Discuz!数据库
2008/05/03 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
Django model update的多种用法介绍
2020/03/28 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
eBay德国站:eBay.de
2017/09/14 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
财务管理个人自荐书范文
2013/11/24 职场文书
诚信考试标语
2014/06/24 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书