python xpath lxml 抓取网页

python xpath lxml 抓取网页,不是特别成功
备注:xpath中如果要带变量,现在只能用format方式进行后添加
etree获取到的内容不知道是什么类型数据:之前是个emenment,这里却是一个列表

import requests
from lxml import etree

url = "https://docs.openvswitch.org/en/latest/ref/"
resp = requests.get(url).text

et = etree.HTML(resp)
for i in range(1,15):     #无法知道下面有多少页,所以只能查看后指定了
    list_xpath = ("//div[@class='toctree-wrapper compound']/ul/li[{}]/a/@href").format(i)  #用了很多种办法带参数,只有这种format方法可以用
    file_url = et.xpath(list_xpath)    #返回获取到的url 的后缀,但是带/,需要转换成str后,切割
    file_name = str(file_url[0]).split("/")[0]    #由于带"/“,无法做文件名后面需要用此过滤出来的做为文件名
    new_url = url + file_name + "/"               #再次拼接成新的url地址
    data = requests.get(new_url).text.encode()    #如果没有encode(),则提示TypeError: a bytes-like object is required, not 'str'
    print(new_url)
    with open(file_name + ".html",mode="wb") as f:
        f.write(data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值