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制作花瓣网美女图片爬虫
Oct 28 Python
Python正则表达式使用范例分享
Dec 04 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
Python自定义简单图轴简单实例
Jan 08 Python
Python3 合并二叉树的实现
Sep 30 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
Django 再谈一谈json序列化
Mar 16 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
如何清空python的变量
Jul 05 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读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
js Math 对象的方法
2013/09/01 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
基于vue实现swipe分页组件实例
2017/05/25 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
html5与css3小应用
2013/04/03 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
总裁秘书岗位职责
2013/12/04 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
环境日宣传活动总结
2014/07/09 职场文书
安全先进班组材料
2014/12/26 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书