使用python抓取汽車之家車型資料
import requests
import pymysql
HOSTNAME = '127.0.0.1'
USERNAME = 'root'
PASSWORD = 'zyndev'
DATABASE = 'zyndev_new'
brand = 'http://www.autohome.com.cn/ashx/AjaxIndexCarFind.ashx?type=1'
series = 'http://www.autohome.com.cn/ashx/AjaxIndexCarFind.ashx?type=3&value={}'
model = 'http://www.autohome.com.cn/ashx/AjaxIndexCarFind.ashx?type=5&value={}'
def obtain_brand_info():
request_brand = requests.get(brand)
if request_brand.status_code == 200:
request_brand.close()
brand_json = request_brand.json()
if brand_json['returncode'] == 0: # 成功
brand_list = brand_json['result']['branditems']
conn = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE, charset="utf8" )
cur = conn.cursor()
args = []
for item in brand_list: # 存入資料庫 將 dict 轉為 list
sub_arg = (item['id'], item['name'], item['bfirstletter'])
args.append(sub_arg)
print(args)
# rowcount = cur.executemany('INSERT INTO auto_home_car_brand(brandid,name,bfirstletter) values(%s,%s,%s)', args)
# conn.commit()
# print(f"插入品牌:\n共{len(brand_dict)}\n成功插入{rowcount}條記錄\n插入失敗{len(brand_dict) - rowcount}條")
# cur.close()
# conn.close()
return brand_list
else:
raise Exception("請求失敗")
def obtain_series(brand_list):
for brand_info in brand_list:
request_series = requests.get(series.format(brand_info['id']))
if request_series.status_code == 200:
request_series.close()
series_json = request_series.json()
if series_json['returncode'] == 0: # 成功
factory_list = series_json['result']['factoryitems']
conn = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE, charset="utf8")
cur = conn.cursor()
args = []
series_count = 0
for factory_item in factory_list:
factory_id = factory_item['id']
factory_name = factory_item['name']
series_items = factory_item['seriesitems']
for series_item in series_items:
series_count = series_count + 1
sub_arg = (brand_info['id'], factory_id, factory_name, series_item['id'], series_item['name'],
series_item['seriesstate'], series_item['seriesorder'])
args.append(sub_arg)
rowcount = cur.executemany('''INSERT INTO auto_home_car_series(brand_id, factory_id, `factory_name`,
`series_id`, `series_name`, `series_state`,`series_order`)
values(%s, %s, %s, %s, %s, %s, %s)''',args)
conn.commit()
print(f"插入車系:\n共{series_count}\n成功插入{rowcount}條記錄\n插入失敗{series_count - rowcount}條")
cur.close()
conn.close()
def obtain_model():
conn = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE, charset="utf8")
cur = conn.cursor()
cur.execute("select series_id from auto_home_car_series")
series_list = cur.fetchall()
for series in series_list:
request_model = requests.get(model.format(series[0]))
if request_model.status_code == 200:
model_json = request_model.json()
request_model.close()
if model_json['returncode'] == 0: # 成功
year_items = model_json['result']['yearitems']
conn = pymysql.connect(HOSTNAME, USERNAME, PASSWORD, DATABASE, charset="utf8")
cur = conn.cursor()
args = []
model_count = 0
for year_item in year_items:
for spec_item in year_item['specitems']:
model_count = model_count + 1
sub_args = (series[0], year_item['id'], year_item['name'], spec_item['id'], spec_item['name'],
spec_item['state'], spec_item['minprice'], spec_item['maxprice'])
args.append(sub_args)
rowcount = cur.executemany('''INSERT INTO auto_home_car_model(
`series_id`, `year_id`, `year_name`, `model_id`,
`model_name`, `model_state`, `min_price`, `max_price`)
values(%s, %s, %s, %s, %s, %s, %s, %s)''', args)
conn.commit()
print(f"插入車型:\n共{model_count}\n成功插入{rowcount}條記錄\n插入失敗{model_count - rowcount}條")
cur.close()
conn.close()
def main():
#brand_list = obtain_brand_info()
#obtain_series(brand_list)
obtain_model()
if '__main__' == __name__:
main()
相關推薦
使用python抓取汽車之家車型資料
import requests import pymysql HOSTNAME = '127.0.0.1' USERNAME = 'root' PASSWORD = 'zyndev' DATABASE = 'zyndev_new' brand = 'ht
java 開發用到網路爬蟲,抓取汽車之家網站全部資料經歷
經歷了兩個禮拜的折騰,某某知名網站的資料終於到手了。犯罪沒被發現這種心情感覺很爽。 說一下我的犯罪經歷,之前公司總是抓取某某網站資料,可能是被發現了。某某網站改變了策略。通過各種技術終止了我們的行為,導致我們的抓取功能報錯,逐步跟蹤,發現我們之前是在人家的網站,通過Webh
使用Java抓取解析汽車之家車型配置資料
因為公司業務需求,需要獲取汽車之家的車型配置資料如下圖: 由於汽車之家沒做防爬策略,只是資料給混淆了,這裡主要說解析資料。 通過儲存頁面,配置項的資料是通過JS動態生成的。在頁面的第572行左右,有配置項的json格式資料 主要的配置
python爬蟲實戰 爬取汽車之家上車型價格
相關庫 import pymysql import pymysql.cursors from bs4 import BeautifulSoup import requests import random
汽車之家店鋪資料抓取 DotnetSpider實戰[一]
一、背景春節也不能閒著,一直想學一下爬蟲怎麼玩,網上搜了一大堆,大多都是Python的,大家也比
python入門-----爬取汽車之家新聞,---自動登錄抽屜並點贊,
ike color div標簽 pla spa art com col 3-9 爬取汽車之家新聞,代碼如下 import requests res=requests.get(url=‘https://www.autohome.com.cn/news/‘) #向汽車直接
python3 爬取汽車之家所有車型操作步驟
題記: 網際網路上關於使用python3去爬取汽車之家的汽車資料(主要是汽車基本引數,配置引數,顏色引數,內飾引數)的教程已經非常多了,但大體的方案分兩種: 1.解析出汽車之家某個車型的網頁,然後正則表示式匹配出混淆後的資料物件與混淆後的js,並對混淆後的js使用pyv8進行解析返回
python網路爬蟲爬取汽車之家的最新資訊和照片
實現的功能是爬取汽車之家的最新資訊的連結 題目和文章中的照片 爬蟲需要用到我們使用了 requests 做網路請求,拿到網頁資料再用 BeautifulSoup 進行解析 首先先檢查是否安裝了pip,如果已經安裝了pip,直接pip install requests,pip uninstal
WebMagic爬蟲入門教程(三)爬取汽車之家的例項-品牌車系車型結構等
本文使用WebMagic爬取汽車之家的品牌車系車型結構價格能源產地國別等;java程式碼備註,只是根據url變化爬取的,沒有使用爬取script頁面具體的資料,也有反爬機制,知識簡單爬取html標籤爬取的網頁: 需要配置pom.xml <!-
python爬蟲——爬取汽車之家新聞
按F12審查一下元素:找到了對應的資訊。而且發現要爬取的圖片都在id=auto-channel-lazyload-article的div標籤下的li標籤裡。 li標籤下的a標籤就是新聞的url;image標籤,src就是獲取圖片的url; 請求圖片地
Python練習 scrapy 爬取汽車之家文章
autohome.py #spider檔案 # -*- coding: utf-8 -*- import scrapy from Autohome.items import AutohomeItem class AutohomeSpider(scrapy.Spider)
scrapy汽車之家車型的簡單爬取
汽車之家車型的簡單爬取 spider # -*- coding: utf-8 -*- import scrapy from scrapy import Request from mininova.items import carItem import sys r
爬取汽車之家
ref article brush att split channel odin lazy com import requests from bs4 import BeautifulSoup response = requests.get(‘https://www.aut
爬取汽車之家北京二手車資訊
爬取汽車之家北京二手車資訊 經測試,該網站:https://www.che168.com/beijing/list/ 反爬機制較低,僅需要偽造請求頭設定爬取速率,但是100頁之後需要登入,登入之後再爬要慎重,一不小心就會永久封號。爬取的資料以各種型別存放,下面展示儲存到mysql資料
汽車之家口碑資料的爬蟲
一,爬蟲都是具有時效性的,我不知道反爬蟲什麼時候更新,所以失效以後,除非工作需要,否則我也一般會維護。二,移動客戶端網頁一般比電腦的網頁更好爬取,所以這次可以用汽車之家口碑的移動端網頁,用電腦網頁也可以,但是需要在汽車之家論壇反爬蟲的基礎上在進行修改。比較麻煩。三,以這篇口碑為例,在網頁上顯示的最滿意為下圖所
Python3[爬蟲實戰] scrapy爬取汽車之家全站連結存json檔案
昨晚晚上一不小心學習了崔慶才,崔大神的部落格,試著嘗試一下爬取一個網站的全部內容,福利吧網站現在已經找不到了,然後一不小心逛到了汽車之家 (http://www.autohome.com.cn/beijing/) 很喜歡這個網站,女人都喜歡車,更何況男人呢。(
Java爬蟲初體驗:簡單抓取IT之家熱評(整合Spring Boot+Elasticsearch+Redis+Mybatis)
爬取主程式 使用Jsoup解析網頁原始碼 @Component public class WebCrawler { private static final String encoding = "utf-8"; @Autowired
汽車之家店鋪數據抓取 DotnetSpider實戰[一]
@class 詳情 nbsp 實體 比較 request else post 好的 一、背景 春節也不能閑著,一直想學一下爬蟲怎麽玩,網上搜了一大堆,大多都是Python的,大家也比較活躍,文章也比較多,找了一圈,發現園子裏面有個大神開發了一個DotNetSpider的開源
汽車之家店鋪數據抓取 DotnetSpider實戰
xv6 pan req time 大神 -i xib lac context 一、背景 春節也不能閑著,一直想學一下爬蟲怎麽玩,網上搜了一大堆,大多都是Python的,大家也比較活躍,文章也比較多,找了一圈,發現園子裏面有個大神開發了一個DotNetSpider的開源庫,
汽車之家資料爬取:文章連結//圖片//標題
(1)打印出來的東西亂碼,如何處理這個問題? import requests response=requests.get( url='https://www.autohome.com.cn/beijing/' #最新的地址是可以出來的 # url='https://