51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用python的LXML进行数据解析

python语言我们可以通过lxml进行解析,所以想要在网页解析HTML和XML从而采集数据,通过lxml解析网站数据,爬虫采集的数据就容易很多。lxml是速度是非常的快。

使用lxml提取网页数据的流程

使用lxml只需要两步就能解析出网站的数据:

  • 1、用lxml把网页进行解析出来。通过这个过程,我们一般选择lxml.html来完成
  • 2、使用xpath解析,然后采集所需要的数据。

想要提取整个网站所需要的数据,这里的整个抓取关键是网络性能,而不是程序性能。所以不能用异步把程序性能提高了,如果采用异步提取的话,这样抓取的频率提高了,反而更容易被网站限制。

我们可以通过实例来解析一下HTML代码:

    #! -*- encoding:utf-8 -*-
import aiohttp, asyncio

targetUrl = "http://httpbin.org/ip"

# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"

# 代理验证信息
proxyUser = "username"
proxyPass = "password"

proxyServer = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host" : proxyHost,
    "port" : proxyPort,
    "user" : proxyUser,
    "pass" : proxyPass,
}

userAgent = "Chrome/83.0.4103.61"

async def entry():
    conn = aiohttp.TCPConnector(verify_ssl=False)

    async with aiohttp.ClientSession(headers={"User-Agent": userAgent}, connector=conn) as session:
        async with session.get(targetUrl, proxy=proxyServer) as resp:
            body = await resp.read()

            print(resp.status)
            print(body)

loop = asyncio.get_event_loop()
loop.run_until_complete(entry())
loop.run_forever()</code></pre>

赞(2)
未经允许不得转载:工具盒子 » 使用python的LXML进行数据解析