爬取汽車之家問答詳情頁資料

2021-10-19 23:43:50 字數 1897 閱讀 8476

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 ...