Python爬蟲在實際應用中有很多小案例,比如我們可以設計一個簡單的爬蟲腳本來獲取指定網站的新聞內容。
以下是一個簡單的案例,可以爬取網站“新浪新聞”的新聞標題、發布時間和內容:
import requests
from lxml import etree
# 定義請求頭
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'}
# 定義目標URL
url = 'https://news.sina.com.cn/'
# 獲取網頁源碼
response = requests.get(url, headers=headers)
html = response.text
# 解析HTML
etree_html = etree.HTML(html)
# 獲取所有新聞標題
titles = etree_html.xpath('//div[@class="col1"]/ul/li/a/text()')
# 獲取所有新聞發布時間
times = etree_html.xpath('//div[@class="col1"]/ul/li/span/text()')
# 獲取所有新聞內容鏈接
links = etree_html.xpath('//div[@class="col1"]/ul/li/a/@href')
# 打印所有新聞標題、發布時間和內容
for i in range(len(titles)):
response = requests.get(links[i], headers=headers)
html = response.text
etree_html = etree.HTML(html)
content = etree_html.xpath('//div[@class="article"]/p/text()')
print('標題:', titles[i], '\n', '發布時間:', times[i], '\n', '內容:', content)
這個案例首先定義了請求頭,再定義目標URL,然后發起請求并獲取網頁源碼,最后使用lxml庫解析HTML。通過XPath獲取新聞標題、發布時間和內容鏈接,并通過循環依次訪問每個鏈接,獲取新聞內容。最后打印出所有新聞的標題、發布時間和內容。
通過這個小案例,我們可以了解到Python爬蟲的基本流程和常用庫的使用方法。在實際應用中,我們可以根據需要對其進行修改和擴展,達到更加復雜和有用的功能。