1.確定首頁目標的url
2.傳送請求,得到詳情頁的url
3.再次傳送請求,獲取響應得到詳情頁的資料
4.解析詳情頁資料
5.儲存資料
通過首頁url傳送請求,得到詳情頁的url,再次傳送請求,獲取響應,從而得到詳情頁的目的資料。
介紹如何根據首頁的url,爬取詳情頁對應的url以及詳情頁的資料。
細心的朋友會發現,我們通過xpath找到的詳情頁的url並不是完整的,因此我們在對詳情頁傳送請求時,需要對詳情頁的url進行手動拼接。
注意:這是通過首頁獲取詳情頁的url,然後再次傳送請求,在詳情頁中獲取我們的目的資料。
import requests
from lxml import etree
import json
if __name__ == '__main__':
# 確認目標的url
url = ''
# 構造請求頭引數
headers =
# 傳送請求,獲取響應
response = requests.get(url,headers=headers)
# 資料型別為html
str_data = response.text
# 將資料轉化成py資料
py_data = etree.html(str_data)
# 提取資料
question_list = py_data.xpath('//h4/a/text()')
url_list = py_data.xpath('//h4/a/@href')
# 由於詳情頁的url都屬不完整的,因此,需要通過手動拼接
answer_list =
for i in url_list:
detail_url = ''+i
detail_response = requests.get(detail_url,headers=headers)
# 資料型別為html
detail_data = detail_response.text
py_detail_data = etree.html(detail_data)
# 提取目標資料
answer = py_detail_data.xpath('//div[@class="ahe__area ahe__block ahe__text"]/p/text()')
# 獲取回答為乙個列表資料,因此需要將列表拼接起來
answer_ = ''.join(answer)
for i in range(len(question_list)):
dict_ = {}
dict_[question_list[i]] = answer_list[i]
# 將資料轉換成json格式
json_data = json.dumps(dict_,ensure_ascii=false)+',\n'
# 儲存到本地
with open('汽車之家問答.json','a',encoding='utf-8')as f:
f.write(json_data)
爬取汽車之家
爬汽車之家新聞 爬取汽車之家新聞 import requests 向汽車之家傳送get請求,獲取到頁面 ret requests.get print ret.text 用bs4解析 from bs4 import beautifulsoup 例項化得到物件,傳入要解析的文字,解析器 html.par...
PYTHON爬取汽車之家資料
使用知識 使用說明 源 usr bin env python coding utf 8 time 2020 1 16 15 34 author wsx site file cars.py software pycharm import json from multiprocessing import...
爬蟲筆記(二) 爬取藥監局所有詳情頁資料
藥監局 藥監局首頁 詳情頁 目的 爬取藥監局所有詳情頁資訊,儲存在本地,以csv檔案格式儲存。分析主頁 主頁的response返回內容中,包含了這一頁中的所有企業的id 修改網頁引數page可以實現翻頁 所以首先要通過訪問主頁,獲取所有企業id,放到乙個list中。if name main url ...