写一个最简单的例子,爬取百度首页右上角的“新闻”链接的名称和其URL。
截取新闻的xpath,(F12,选择新闻两字,右击,选择Copy-Copy Xpath).(注意:若登录百度,相应xpath会改变,此为非登录状态)
在看例子前,建立了解下Xpath基础,如何定义网络页面的。
import requests
from lxml import etree
response = requests.get('https://www.baidu.com')
response.encoding='utf-8'
selector = etree.HTML(response.text)
news_text = selector.xpath('//*[@id="u1"]/a[1]/text()')[0]
news_url=selector.xpath('//*[@id="u1"]/a[1]/@href')[0]
print(news_text)
print(news_url)
输出:
新闻
http://news.baidu.com