网页抓取 加密html( Web抓取Web站点使用描述与Requests()模块)
优采云 发布时间: 2021-10-26 05:01网页抓取 加密html(
Web抓取Web站点使用描述与Requests()模块)
Python使用lxml模块和Requests模块抓取HTML页面教程
网页抓取
网站是用 HTML 描述的,这意味着每个网页都是一个结构化的文档。有时在保持其结构的同时从中获取数据很有用。网站并不总是以易于处理的格式(例如 csv 或 json)提供其数据。
现在是网络抢占该领域的时候了。网页抓取是使用计算机程序采集网页数据并将其组织成所需格式的做法,同时保留其结构。
lxml 和请求
lxml() 是一个漂亮的扩展库,用于快速解析 XML 和 HTML 文档,即使处理的标签非常混乱。我们还将使用 Requests (#) 模块来替换内置的 urllib2 模块,因为它更快、更易读。您可以使用 pip install lxml 和 pip install requests 命令安装这两个模块。
让我们从以下导入开始:
from lxml import html
import requests
在下一步中,我们将使用 requests.get 从网页中获取我们的数据,使用 html 模块对其进行解析,并将结果保存到树中。
page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.text)
tree 现在将整个 HTML 文件收录成一个优雅的树状结构,我们可以使用两种方法来访问:XPath 和 CSS 选择器。在本例中,我们将选择前者。
XPath 是一种在结构化文档(如 HTML 或 XML)中定位信息的方法。有关 XPath 的详细介绍,请参阅 W3Schools。
有很多工具可以获取元素的 XPath,例如 Firefox 的 FireBug 或 Chrome 的 Inspector。如果您使用 Chrome,您可以右键单击该元素,选择“检查元素”,突出显示此代码,再次右键单击,然后选择“复制 XPath”。
经过快速分析,我们看到页面上的数据存储在两个元素中,一个是标题为'buyer-name'的div,另一个是类为'item-price'的span:
Carson Busses
$29.95
知道了这一点,我们可以创建正确的 XPath 查询并使用 lxml 的 xpath 函数,如下所示:
#这将创建buyers的列表:
buyers = tree.xpath('//div[@title="buyer-name"]/text()')
#这将创建prices的列表:
prices = tree.xpath('//span[@class="item-price"]/text()')
让我们看看我们得到了什么:
print 'Buyers: ', buyers
print 'Prices: ', prices
Buyers: ['Carson Busses', 'Earl E. Byrd', 'Patty Cakes',
'Derri Anne Connecticut', 'Moe Dess', 'Leda Doggslife', 'Dan Druff',
'Al Fresco', 'Ido Hoe', 'Howie Kisses', 'Len Lease', 'Phil Meup',
'Ira Pent', 'Ben D. Rules', 'Ave Sectomy', 'Gary Shattire',
'Bobbi Soks', 'Sheila Takya', 'Rose Tattoo', 'Moe Tell']
Prices: ['$29.95', '$8.37', '$15.26', '$19.25', '$19.25',
'$13.99', '$31.57', '$8.49', '$14.47', '$15.86', '$11.11',
'$15.98', '$16.27', '$7.50', '$50.85', '$14.26', '$5.68',
'$15.00', '$114.07', '$10.09']
恭喜!我们已经成功通过lxml和Request从一个网页中抓取了我们想要的所有数据。我们以列表的形式将它们存储在内存中。现在我们可以用它做各种很酷的事情:我们可以用 Python 分析它,或者我们可以将它保存为文件并与世界分享。
我们可以考虑一些更酷的想法:修改此脚本以遍历本示例中数据集中的剩余页面,或者使用多个线程重写此应用程序以提高其速度。
时间:2016-05-13
Python使用requests模块发送GET和POST请求的实现代码
①GET # -*- coding:utf-8 -*- import requests def get(url, datas=None): response = requests.get(url, params=datas) json = response.json() return json 注意:参数datas json格式②POST # -*- coding:utf-8 -*- import requests def post(url, datas=None): response = re
Python3 控制router-use 请求重启pole routing.py
通过这篇文章,我将向大家介绍Python3控制路由器的知识——使用请求重启极路由.py。代码写了相应的注释,后来写成一个模块,方便调用。可以看到很多带有fiddler抓包的HTTP头,尝试后发现没有必要。'Upgrade-Insecure-Requests':1,#Required item, value is 1 Set-Cookie """ 返回响应到python3控制
Python Requests 安装及简单使用
requests是python的一个HTTP客户端库,类似于urllib和urllib2,那么为什么要用requests而不是urllib2呢?官方文档是这样的:python 的标准库 urllib2 提供了大部分需要的 HTTP 函数,但是 API 太差了,一个简单的函数需要很多代码。我也看了请求文档,确实很简单,适合我的类型优采云。这里有一些简单的指南。插页式好消息!我刚刚看到请求有中文翻译版本。建议英文不好。内容比我的博客好多了。具体链接是:
Python3使用请求登录人人影视网站
我早就听说过 requests 库的强大功能,但我还没有接触过。今天联系了一下,发现使用urllib、urllib2等方法真的太麻烦了——这里有一些简单的初步使用作为记录。本文继续练习使用请求登录网站,人人影视有签到功能,需要每天登陆和签到升级。以下代码python代码实现了使用请求登录网站的过程。下面是使用fiddler抓包得到完整的HTTP请求头:POST HTTP/1.
python中请求爬取网页内容出现乱码问题的解决方法介绍
最近在学习python爬虫和使用requests的时候遇到了很多问题。例如,如何在请求中使用 cookie 进行登录验证。这可以在这个 文章 中查看。本博客要解决的问题是如何避免使用请求时出现乱码。import requests res=requests.get("") print res.content 以上就是简单的使用requests从网页中请求数据的方法。但是很容易出现乱码。我们可以在网页上使用右键查看
如何解决JSP页面中通过超链接传递中文参数时出现乱码的问题
本文介绍了JSP页面中超链接传递时出现乱码问题的解决示例。分享出来供大家参考,如下: 这里分析一下传递中文参数的超链接,以及接收页面乱码问题的解决方法。解决方法:在接收页面可以进行如下处理,复制代码如下: 注意这里使用new String()新建字符串示例: 页面一:
mysql字符集乱码问题解决方法介绍
character-set-server/default-character-set:服务器字符集,默认使用。character-set-database:数据库字符集。character-set-table:数据库表字符集。优先级依次增加。所以一般情况下只需要设置character-set-server,创建数据库和表时不指定字符集,统一采用character-set-server字符集。character-set-client:客户端的字符集。客户端默认字符集。
python中请求中使用proxy的方法介绍
学习网络爬虫难免会遇到代理的使用。下面是使用请求设置代理的方法: 如果需要使用代理,可以通过为任何请求方法提供代理参数来配置单个请求: import requests proxies = {"http": " :3128", "https" : ":1080",} requests.get("
详解python中requests库session对象的神奇使用
在进行接口测试时,我们会调用多个接口来进行多个请求。在这些请求中,我们有时需要维护一些共享数据,比如cookie信息。requests 库的 session 对象可以帮助我们维护某些交叉请求。参数,cookie 也将保存在同一会话实例发出的所有请求之间。例如,要跨请求保持cookies,在命令行输入以下命令: # 创建会话对象 s = requests.Session() # 使用会话对象发出获取请求并设置cookies s.get('
如何在python中使用requests模块
本文介绍了python中requests模块的使用。我分享给大家,供大家参考。具体分析如下: 在HTTP相关处理中使用python是没有必要的麻烦,包括urllib2模块以巨大的复杂性为代价获取综合信息的功能。与 urllib2 相比,Kenneth Reitz 的 Requests 模块更加简洁,可以支持完整的简单用例。简单的例子:想象一下我们正在尝试使用get方法来获取资源并查看返回码、content-type头信息,以及响应这件事的主要内容。无论使用
在python中使用请求和https的简单示例
requests 是一个非常小而全面的库。有了它,就可以轻松编写与服务器交互的程序。今天,我遇到了一个问题。和服务器交互的时候,url都是以https开头的,都是ssl加密的。那么,就不能像以前一样访问http开头的URL了。查了一些资料,可以配置文件进行ssl验证,方式如下 res = requests.get(':5503/login',cert=('./server.crt','./server.key.unsecure ')) 能跑
浅谈python中requests模块的导入
今天在使用Pycharm抓取网页图片时,需要导入requests模块,但是在pycharm中导入requests时报错。原因:python中没有安装requests库。解决方法:1.首先在你的python安装目录中找到pip2.在你的电脑上打开cmd窗口。首先点击开始栏,在搜索栏中输入cmd,回车,打开cmd窗口。将目录切换到 cmd 中的 pip 路径。比如我的C:\Python27\Scripts目录下,先切换到d盘,然后输入这个路径。具体命令:cd。
Python使用爬虫详细爬取静态网页图片
本文介绍了Python使用爬虫爬取静态网页图片的例子。分享给大家,供大家参考,具体如下:爬虫的理论基础并不像大家想象的那么复杂,有时候只是几行代码。不要吓唬自己。本文将清晰讲解使用Python爬虫的理论基础。首先说明爬虫分为三个步骤,需要三个工具。① 使用网页下载器下载网页源代码及其他资源下载。② 使用网址管理器管理下载的网址 ③ 使用网页解析器解析需要的网址,然后进行匹配。有两种常用的网页下载器。一个是Python自带的urlli
python爬虫爬取百度音乐的实现方法
上次爬虫中,爬取的数据主要是使用了第三方的Beautifulsoup库,然后针对每一个具体的数据在网页的selector中查找,每个类别都有一个select方法。对于网页,有接触过的人都知道,很多有用的数据都放在一个共同的父节点上,但是它的子节点是不同的。在最后的爬虫中,每种类型的数据都必须从其父节点(包括其父节点的父节点)向上和向下查找ROI数据所在的子节点,这样会使爬虫非常臃肿,因为很多的数据具有相同的父节点,并且每次都必须重复找到父节点。这样的爬虫非常低效。因此,笔者在上次的基础上,对爬取策略进行了改进。