Python爬虫:Xpath爬取网页信息(附代码)

Python爬虫:Xpath爬取网页信息(附代码)

上一次分享了使用Python简单爬取网页信息的方法。但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求。对于一般的数据需求,我们通常需要从一个网页跳转到另外一个网页,才能获取到详细的信息。今天我要分享的就是,如何通过一个网页,获取到所链接到的网页的详细信息。

直接上代码

1.获取单个网页的信息,找到该网页中所链接的数据详情网址

#获取网页详情页面url
def get_detail_urls(page):
    resp = requests.get(url,headers=headers)
    text = resp.content.decode('utf-8')
    time.sleep(2)
    
    #提取数据
    html = etree.HTML(text)
    #print(html)
    ul = html.xpath('//ul[@class="..."]')[0]#...为标签名称
    #print(ul)
    lis = ul.xpath('./li')
    detail_urls = []
    for li in lis:
        detail_url = li.xpath('./div[@class="..."]/div[@class="..."]/h3/a/@href')#详情页面url
        detail_url = detail_url[0]
        #print(detail_url)
    return detail_url

2.提取详情页面的数据

#提取详情页面的数据
def parse_detail_page(url):
    resp = requests.get(url,headers=headers)
    text = resp.content.decode('utf-8')
    time.sleep(2)
    html = etree.HTML(text)
    title = html.xpath('//div[@class="title-info"]/h1/text()')

    #存入txt文件
    with open('test.txt', 'a', encoding='utf-8') as f:
         for a in range(0,len(title)):
             f.write(title[a].strip()+'\n')
    f.close()

3.调用函数,自动翻页,爬取多个网页信息

def main():
    for j in range(0, 10):
        print("正在爬取第" + str(j) + "页数据...")
        detail_urls = get_detail_urls(j)
        for detail_url in detail_urls:
            parse_detail_page(detail_url)
            #print(text)
    print("over")

这是一个完整的代码,里面具体的标签需要根据自己爬取的网页,查看网页源代码,找到需要的标签名称。整个代码应该算是清晰明了,如果有什么问题,欢迎指出~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值