文档章节

requests+lxml爬虫利器

曾劲松
 曾劲松
发布于 2016/10/04 18:57
字数 495
阅读 131
收藏 3

requests

1.requests是一个强大的Python第三方Http库,基于httplib和urllib3,接口清晰易用,功能十分强大。

###1. 安装
pip install requests或者easy_install requests

###2. 基本使用
在ipython中利用自动补全看下调用requests之后返回的response对象的一些属性:

In [1]: import requests
In [2]: r = requests.get('https://api.github.com')
In [3]: r.
r.apparent_encoding  r.history            r.raw
r.close              r.is_redirect        r.reason
r.connection         r.iter_content       r.request
r.content            r.iter_lines         r.status_code
r.cookies            r.json               r.text
r.elapsed            r.links              r.url
r.encoding           r.ok                 
r.headers            r.raise_for_status 

快速入门:http://requests-docs-cn.readthedocs.io/zh_CN/latest/user/quickstart.html 

高级的用法:http://requests-docs-cn.readthedocs.io/zh_CN/latest/user/advanced.html

lxml

安装方法(很多同学在安装过程中遇到了问题),见我的上一篇博客。

使用requests库获取到网页内容后,再通过lxml解析,也可通过BeautifulSoup等等工具

lxml是基于C语言库libxml2和libxslt的python化绑定,其对XML(HTMl)有强大的处理能力,并且向下兼容Python的ElementTree API,支持Xpath和BeautifulSoup解析, 使用起来非常方便。

官方教程:http://lxml.de/

下面是一个在Windows平台下用python3.5用lxml解析HTML的例子,lxml通过xpath表达式来获取数据

(详见:http://www.cnblogs.com/descusr/archive/2012/06/20/2557075.html):

from lxml import etree

html = '''

<html>
  <head>
    <meta name="content-type" content="text/html; charset=utf-8" />
    <title>友情链接查询 - 站长工具</title>
    <!-- uRj0Ak8VLEPhjWhg3m9z4EjXJwc -->
    <meta name="Keywords" content="友情链接查询" />
    <meta name="Description" content="友情链接查询" />

  </head>
  <body>
    <h1 class="heading">Top News</h1>
    <p style="font-size: 200%">World News only on this page</p>
    Ah, and here's some more text, by the way.
    <p>... and this is a parsed fragment ...</p>

    <a href="http://www.cydf.org.cn/" rel="nofollow" target="_blank">青少年发展基金会</a> 
    <a href="http://www.4399.com/flash/32979.htm" target="_blank">洛克王国</a> 
    <a href="http://www.4399.com/flash/35538.htm" target="_blank">奥拉星</a> 
    <a href="http://game.3533.com/game/" target="_blank">手机游戏</a>
    <a href="http://game.3533.com/tupian/" target="_blank">手机壁纸</a>
    <a href="http://www.4399.com/" target="_blank">4399小游戏</a> 
    <a href="http://www.91wan.com/" target="_blank">91wan游戏</a>

  </body>
</html>

'''

page = etree.HTML(html.lower())
hrefs = page.xpath(u"//a")
for href in hrefs:
   # print(href.attrib)
   print(href.text)

 

© 著作权归作者所有

共有 人打赏支持
曾劲松
粉丝 4
博文 200
码字总数 141434
作品 0
武汉
私信 提问
博客园目录

table标签中thead、tbody、tfoot的作用http://www.cnblogs.com/zhouxinfei/p/8001510.html python selenium模拟滑动操作http://www.cnblogs.com/zhouxinfei/p/8001506.html Selenium webdriv......

_周小董
2017/12/09
0
0
Python 爬虫工程师必学——App数据抓取实战

网盘下载 Python 爬虫工程师必学 App数据抓取实战 爬虫分为几大方向,WEB网页数据抓取、APP数据抓取、软件系统数据抓取。本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭...

qq__2304636824
10/06
0
0
Win7 64bit 安装爬虫Scrapy

安装Scrapy进过的坑 在学习爬虫的时候,也上网搜过不少相关教程,最终决定选择在Linux上开发,只能用虚拟机了,但是虚拟机比较卡,也比较占用系统资源,所以决定尝试在Windows win7上安装爬虫...

Listen_ing
2016/11/30
375
0
开发常用经典工具集合 欢迎补充

最新国内国外免费代理服务器IP地址列表--有段时间在做爬虫项目,经常遇到被ip屏蔽情况,这时候想找些免费代理越过。里面免费的IP可利用率可能只有20%,不过可以花十块钱买1000个可利用率在30%...

KongFanhao
2016/05/23
29
0
python网络爬虫第一天学习资料下载

python网络爬虫第一天 1网络爬虫是何物? 说到网络爬虫,然而它并不是一种爬虫~而是一种可以在网上任意搜索的一个脚本程序。 有人说一定要解释网络爬虫到底是干毛用的。尝试用了很多种解释,...

wz1135640
03/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
59分钟前
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
16
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部