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判断、获取一张图片主色调的2个实例
Apr 10 Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
python aiohttp的使用详解
Jun 20 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
Python列表推导式实现代码实例
Sep 09 Python
python设置 matplotlib 正确显示中文的四种方式
May 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 strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
总结对比php中的多种序列化
2016/08/28 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
vue.js的提示组件
2017/03/02 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
python通过yield实现数组全排列的方法
2015/03/18 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
python多进程间通信代码实例
2019/09/30 Python
Python3 元组tuple入门基础
2020/02/09 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
家长评语和期望
2014/02/10 职场文书
运动会标语
2014/06/21 职场文书
作风建设年活动总结
2014/08/27 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
银行转正自我鉴定
2014/09/29 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
2016公务员年度考核评语
2015/12/01 职场文书