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中使用poplib模块收取邮件的教程
Apr 29 Python
Python数据类型详解(一)字符串
May 08 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
Python 实现微信防撤回功能
Apr 29 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
Django 大文件下载实现过程解析
Aug 01 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python中plt.imshow与cv2.imshow显示颜色问题
Jul 16 Python
python selenium xpath定位操作
Sep 01 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
python index() 与 rindex() 方法的使用示例详解
Dec 24 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在字符断点处截断文字的实现代码
2011/04/21 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python学生管理系统学习笔记
2019/03/19 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
公司任命书模板
2014/06/06 职场文书
大学毕业生推荐信
2014/07/09 职场文书
第一军规观后感
2015/06/12 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python