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的pyxmpp2中的主循环使其提高性能
Apr 24 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
Python进程间通信Queue实例解析
Jan 25 Python
Python yield与实现方法代码分析
Feb 06 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
如何在Python中妥善使用进度条详解
Apr 05 Python
如何Python使用re模块实现okenizer
Apr 30 Python
python开发人人对战的五子棋小游戏
May 02 Python
 python中的元类metaclass详情
May 30 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
Python中模块string.py详解
2017/03/12 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
pytorch masked_fill报错的解决
2020/02/18 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
python Selenium 库的使用技巧
2020/10/16 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
python基于opencv实现人脸识别
2021/01/04 Python
如何用Python徒手写线性回归
2021/01/25 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
乔迁宴答谢词
2014/01/21 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
团队精神口号
2014/06/06 职场文书
专项法律服务方案
2014/06/11 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
2014年保卫科工作总结
2014/12/05 职场文书