程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python帶你采集汽車數據,以後買車就有參考了~

編輯:Python

目錄(可點擊自己想看的地方)

      • 本篇代碼提供者: 青燈教育-巳月老師
  • 本次亮點:
  • 環境介紹:
  • 代碼實現:
  • 代碼
      • 導入模塊
      • 偽裝
      • 發送請求
      • 獲取數據
      • 解析數據
      • 保存數據
  • 尾語


本篇代碼提供者: 青燈教育-巳月老師


本次亮點:

1、系統分析目標網頁

2、html標簽數據解析方法

3、海量數據一鍵保存

環境介紹:

  • python 3.8
  • pycharm 2021專業版 >>> 激活碼
  • requests >>> pip install requests
  • parsel >>> pip install parsel

代碼實現:

  1. 發送請求 (訪問網站)
  2. 獲取數據 網頁源代碼
  3. 解析數據 (網頁構造, css樣式選擇器)
  4. 保存數據

代碼

導入模塊

import requests # 發送請求 第三方模塊(基於urllib開發模塊) 額外安裝 pip install 模塊名
import parsel # 解析數據模塊 第三方模塊 額外安裝 pip install 模塊名
import csv # 內置模塊 不需要你額外安裝

偽裝

# 偽裝 請求頭 request headers
headers = {

# 用戶基本信息, 沒有登陸信息
'Cookie': 'fvlid=1644577630437PyNsv7r4UeWZ; che_sessionid=6033453E-99CD-4D18-9EC6-26D8D81CB82E%7C%7C2022-02-11+19%3A07%3A13.352%7C%7C0; sessionid=1510cb04-9fdd-428f-82f7-d7b77ccae016; area=430103; sessionip=175.0.63.33; sessionvisit=98f1634e-6cbb-4f5e-97f9-6af88e5b8d33; sessionvisitInfo=1510cb04-9fdd-428f-82f7-d7b77ccae016|www.autohome.com.cn|100533; Hm_lvt_d381ec2f88158113b9b76f14c497ed48=1650521306; che_sessionvid=6223C48B-0DCD-4485-8DB7-B9A2D39AC7FF; carDownPrice=1; listuserarea=0; UsedCarBrowseHistory=0%3A43390985%2C0%3A43390239%2C0%3A43268434%2C0%3A43010424; userarea=0; ahpvno=23; Hm_lpvt_d381ec2f88158113b9b76f14c497ed48=1650523580; ahuuid=46A0D5A6-5C39-4735-A5CE-3F6DA42672C9; showNum=52; v_no=36; visit_info_ad=6033453E-99CD-4D18-9EC6-26D8D81CB82E||6223C48B-0DCD-4485-8DB7-B9A2D39AC7FF||-1||-1||36; che_ref=www.autohome.com.cn%7C0%7C100533%7C0%7C2022-04-21+14%3A46%3A20.424%7C2022-02-11+19%3A55%3A59.495; sessionuid=1510cb04-9fdd-428f-82f7-d7b77ccae016',
# 浏覽器基本信息
# 源碼、解答、教程有需要可以口裙:8321刪57862
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
}
# z = 1, y = 2
url = 'https://www.che168.com/china/list/'

發送請求

# 1. 發送請求 (訪問網站)
# # 打印
# print(url)
# 發送請求 方式
response = requests.get(url=url, headers=headers)

獲取數據

# 2. 獲取數據 網頁源代碼
html_data = response.text

解析數據

# 3. 解析數據 (網頁構造, css樣式選擇器)
# 數據分析
# 網站開發 >>> 都有
# 人工智能
# html(存儲數據) + css(樣式) + js(可以實現動態的效果)
# <div class="viewlist_ul">
# 車輛信息
# </div>
# <div>
# 車主信息...
# 源碼、解答、教程有需要可以口裙:8321刪57862
# </div>
# <img />
selector = parsel.Selector(html_data)
# python 數據容器 列表 [1,3,4,5,6]
# 我要用別名去取值
lis = selector.css('.viewlist_ul li')
for li in lis:
card_name = li.css('.card-name::text').get()
cards_unit = li.css('.cards-unit::text').get()
price = li.css('.pirce em::text').get()
img_url = 'https:'+li.css('.img-box img::attr(src)').get()
if price == None or price == "":
price = li.css('.pirce::text').get()
print(card_name, cards_unit, price, img_url)

保存數據

 # 4. 保存數據
with open('汽車之家.csv', mode='a', encoding='utf-8', newline='') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([card_name, cards_unit, price, img_url])

尾語

好了,我的這篇文章寫到這裡就結束啦!

有更多建議或問題可以評論區或私信我哦!一起加油努力叭(ง •_•)ง

喜歡就關注一下博主,或點贊收藏評論一下我的文章叭!!!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved