python——requests+xpath实现爬虫
import requests
from lxml import etree
def get_data(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Accept-Encoding': 'gzip, deflate, br',
}
res = requests.get(url, headers=headers)
res.raise_for_status()
res.encoding = 'utf-8'
return res.text
def parse_data(html):
html = etree.HTML(html)
# 使用XPath表达式提取数据
titles = html.xpath('//h2[@class="post-title"]/a/text()')
links = html.xpath('//h2[@class="post-title"]/a/@href')
return list(zip(titles, links))
def main():
url = "https://www.cnblogs.com/#p"
html = get_data(url)
data = parse_data(html)
for title, link in data:
print(f"标题: {title}, 链接: {link}")
if __name__ == "__main__":
main()
这段代码实现了一个简单的网络爬虫,它从博客园的首页提取文章标题和链接。首先定义了get_data
函数来发送HTTP请求,获取网页内容;然后定义了parse_data
函数使用XPath解析HTML内容;最后在main
函数中调用这两个函数,并打印结果。这个例子展示了如何使用requests库获取网页内容以及如何使用lxml.etree模块和XPath解析HTML结构的数据。
评论已关闭