在Python中使用lxml实现web抓取

网络抓取基本上是指仅从一个或多个网站获取一些重要信息。每个网站都有可识别的HTML元素结构/模式。

null

执行网页抓取的步骤: 1.发送链接并从发送的链接获取响应 2.然后将响应对象转换为字节字符串。 3.将字节字符串传递给lxml模块中html类中的“fromstring”方法。 4.通过xpath访问特定元素。 5.根据需要使用内容。

为了完成这项任务,需要安装一些第三方软件包。使用pip安装控制盘(.whl)文件。

pip install requestspip install lxml

还需要元素的xpath,从中删除数据。一个简单的方法是——

1.右键点击页面中需要报废的元素,进入“检查”。

图片[1]-在Python中使用lxml实现web抓取-yiteyi-C++库

2.右键单击右侧源代码中的元素。

图片[2]-在Python中使用lxml实现web抓取-yiteyi-C++库

3.复制xpath。

图片[3]-在Python中使用lxml实现web抓取-yiteyi-C++库

下面是一个简单的实现“ Geeksforgeks主页 “:

Python3

# Python3 code implementing web scraping using lxml
import requests
# import only html class
from lxml import html
# url to scrap data from
# path to particular element
path = '//*[@id ="post-183376"]/div / p'
# get response object
response = requests.get(url)
# get byte string
byte_data = response.content
# get filtered source code
source_code = html.fromstring(byte_data)
# jump to preferred html element
tree = source_code.xpath(path)
# print texts in first element in list
print (tree[ 0 ].text_content())


上面的代码删去了第一篇文章中的段落“ Geeksforgeks主页 “主页。 以下是示例输出。对于每个人来说,输出可能都不一样,因为这篇文章会有所改变。

输出:

"Consider the following C/C++ programs and try to guess the output?Output of all of the above programs is unpredictable (or undefined).The compilers (implementing… Read More »"

下面是另一个从中提取数据的示例 维基网页抓取 .

Python3

import requests
from lxml import html
# url to scrap data from
link = ' https://en.wikipedia.org / wiki / Web_scraping'
# path to particular element
path = '//*[@id ="mw-content-text"]/div / p[1]'
response = requests.get(link)
byte_string = response.content
# get filtered source code
source_code = html.fromstring(byte_string)
# jump to preferred html element
tree = source_code.xpath(path)
# print texts in first element in list
print (tree[ 0 ].text_content())


输出:

Web抓取、Web捕获或Web数据提取是用于从网站中提取数据的数据抓取。[1] 网络抓取软件可以直接使用超文本传输协议或通过网络浏览器访问万维网。虽然网络抓取可以由软件用户手动完成,但该术语通常指使用机器人或网络爬虫实现的自动化过程。它是一种复制形式,在这种复制中,特定的数据被收集并从网络复制,通常被复制到一个中央本地数据库或电子表格中,以便以后检索或分析。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享