文档章节

requests+lxml爬虫利器

曾劲松
 曾劲松
发布于 2016/10/04 18:57
字数 495
阅读 98
收藏 3
点赞 0
评论 0

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
博文 132
码字总数 141022
作品 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

Win7 64bit 安装爬虫Scrapy

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

Listen_ing ⋅ 2016/11/30 ⋅ 0

python网络爬虫第一天学习资料下载

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

wz1135640 ⋅ 03/20 ⋅ 0

Python检查xpath和csspath表达式是否合法

在做一个可视化配置爬虫项目时,需要配置爬虫的用户自己输入xpath和csspath路径以提取数据或做浏览器操作。考虑到用户的有时会输入错误的xpath或csspath路径,后台需要对其做合法性校验。 xp...

j_hao104 ⋅ 2016/11/10 ⋅ 0

开发常用经典工具集合 欢迎补充

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

KongFanhao ⋅ 2016/05/23 ⋅ 0

SuperSpider——打造功能强大的爬虫利器

1.爬虫的介绍 图1-1 爬虫(spider) 网络爬虫(web spider)是一个自动的通过网络抓取互联网上的网页的程序,在当今互联网中得到越来越广泛的使用。这种技术一般用来爬取网页中链接,资源等,当...

云栖希望。 ⋅ 2017/12/04 ⋅ 0

数据挖掘敲门砖--Python爬虫入门

WHAT 数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大。 数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能(不仅于此) 数据分析方向:需要数理知识支撑,比如概率...

fesoncn ⋅ 01/02 ⋅ 0

网站反爬虫和DOS攻击的利器 --limiter

早年的JavaEye网站曾经深受DOS攻击和爬虫海量抓取造成的负载过高的困扰,我曾经和这个问题进行了为期几年不懈的斗争,并且在总结几年斗争经验后写了一篇总结性博客文章:互联网网站的反爬虫策...

匿名 ⋅ 2012/09/24 ⋅ 0

万方数据库,文献下载的准备,文献信息收集

想批量下载万方数据库的文献,看了一下其html源码不好玩啊. 其一篇文献的下载的链接. 下 载 onclick 事件 onclick 事件会在对象被点击时发生。 请注意, oncli...

东风冷雪 ⋅ 05/23 ⋅ 0

零基础的我是这样开始写Python爬虫的(附代码)

来源:程序猿 本文长度为2863字,建议阅读5分钟 本文为你分享零基础开始写爬虫的经验。 刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页...

enohtzvqijxo00atz3y8 ⋅ 2017/12/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部