成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

愛(ài)卡_xcar_汽車(chē)詳解抓取

archieyang / 1829人閱讀

摘要:爬蟲(chóng)練手,主要運(yùn)用,由于要對(duì)內(nèi)部進(jìn)行分析,所以就直接用了正則匹配,平時(shí)也可以用用,應(yīng)該更加方便思路讀取首頁(yè),就是如為了全部抓取,我們這里都是結(jié)尾找到頁(yè)面里面的標(biāo)簽里面的,這個(gè)這個(gè)地址就是頁(yè)面自動(dòng)播放的下個(gè)頁(yè)面同時(shí)讀出即圖片地址,然后保存我這

爬蟲(chóng)練手,主要運(yùn)用requests,由于要對(duì)script內(nèi)部進(jìn)行分析,所以就直接用了 re 正則匹配,平時(shí)也可以用用Beautifulsoup, 應(yīng)該更加方便

思路:
  

讀取首頁(yè),就是如 http://newcar.xcar.com.cn/2674/2015/detail/1.htm;為了全部抓取,我們這里都是 1.htm 結(jié)尾

  

找到頁(yè)面里面的 script 標(biāo)簽里面的 " var nextUrl " ,這個(gè)這個(gè)地址就是頁(yè)面自動(dòng)播放的下個(gè)頁(yè)面;同時(shí)讀出 img src 即 圖片地址,然后保存(我這里是把 說(shuō)明 等內(nèi)容全部放進(jìn) 目標(biāo)文件的名稱(chēng)中了,其實(shí)大家只要圖片的話完全不需要)

  

遞歸抓取 全部頁(yè)面

這里另外做的一點(diǎn)實(shí)際 弄了個(gè)xcar_lst 記錄所有頁(yè)面、圖片等信息,只是留作記錄,暫時(shí)沒(méi)用

上代碼:
python
# coding:utf-8 __author__ = "BONFY CHEN" import requests import re PROXIES = None HEADERS = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36" , "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" , "Accept-Encoding": "gzip,deflate,sdch" , "Accept-Language": "zh-CN,zh;q=0.8" } BASE_FOLDER = "D:/xxx_folder/" class xcarDown(object): _base_folder = None _proxies = None _headers = None _website = "http://newcar.xcar.com.cn" _xcar_lst = [] def set_base_folder(self, base_folder): self._base_folder = base_folder def set_headers(self, headers): self._headers = headers def set_proxies(self, proxies): self._proxies = proxies def __init__(self, base_folder=BASE_FOLDER, proxies=PROXIES, headers=HEADERS): self.set_base_folder(base_folder) self.set_headers(headers) self.set_proxies(proxies) def download_image_from_url(self, url, name=None): """ download_image_from_url :param url: the resource image url :param name: he destination file name :return: """ local_filename = name + "_" + url.split("/")[-1] r = requests.get(url, proxies=self._proxies, headers=self._headers, stream=True) with open(self._base_folder + local_filename, "wb") as f: for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) f.flush() f.close() return local_filename def download_xcar(self, url): """ :param url: the source url in xcar.com.cn http://newcar.xcar.com.cn/2674/2015/detail/1.htm :return: """ r = requests.get(url, proxies=self._proxies, headers=self._headers) # print r.encoding r.encoding = "gbk" m1 = re.search(r"var nextUrl = "(?P.*.htm)"", r.text) next_url = m1.groupdict()["n_url"] if m1 else None m2 = re.search(r"
(?P.*)</div>", r.text) title = m3.groupdict()["title"] if m3 else "" m4 = re.search(r"<div id="6a22guqa" class="zs_c">(?P<cont>.*)</div>", r.text) cont = m4.groupdict()["cont"] if m4 else "" m5 = re.search(r"<title>(?P<model>.*)", r.text) model = m5.groupdict()["model"] if m5 else "" if pic_url: try: self.download_image_from_url(pic_url, name="_".join([model, title, cont])) print "download complete: pic from {} ".format(pic_url) except IOError: print "file name IOERROR" self.download_image_from_url(pic_url, name=model) print "download complete: pic from {} ".format(pic_url) except Exception as e: print e dct = dict(pic_url=pic_url, next_url=next_url, title=title, cont=cont, model=model) self._xcar_lst.append(dct) if next_url[-4:] == ".htm": self.download_xcar(self._website + next_url) if __name__ == "__main__": print("Welcome to the Pic Download for xcar.com") print("Downloaded files in the folder: " + BASE_FOLDER ) print("---------------------------------------") id_modell = int(input("Please enter the modell id(eg.2674): ")) year = int(input("Please enter the year (eg.2015): ")) url = "http://newcar.xcar.com.cn/{}/{}/detail/1.htm".format(id_modell, year) xcar = xcarDown() xcar.download_xcar(url)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/37570.html

相關(guān)文章

  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • php面向?qū)ο?em>詳解

    摘要:前言自從進(jìn)入版本以來(lái),開(kāi)始全面地支持面向?qū)ο缶幊?。好了,進(jìn)入正題,面向?qū)ο蟮娜筇匦苑謩e是封裝性,繼承性以及多態(tài)性,使用面向?qū)ο箝_(kāi)發(fā),讓我們的程序可維護(hù)以及擴(kuò)展性大大提高。 showImg(https://segmentfault.com/img/remote/1460000012257579?w=1920&h=1080); 前言 自從php進(jìn)入5.0版本以來(lái),PHP開(kāi)始全面地支持面向...

    xingpingz 評(píng)論0 收藏0
  • scrapy汽車(chē)之家車(chē)型的簡(jiǎn)單爬取

    摘要:汽車(chē)之家車(chē)型的簡(jiǎn)單爬取名字自定義配置重新定義起始爬取點(diǎn)所有首字母按照首字母,組合對(duì)應(yīng)的頁(yè)面,壓入根據(jù),抓取頁(yè)面定義默認(rèn)的抓取函數(shù)品牌編號(hào)品牌名品牌品牌小類(lèi)別品牌小類(lèi)別對(duì)應(yīng)的頁(yè)面品牌小類(lèi)別的編號(hào)品牌小類(lèi)別名品牌小類(lèi)別對(duì)應(yīng)的頁(yè)面的 汽車(chē)之家車(chē)型的簡(jiǎn)單爬取spider # -*- coding: utf-8 -*- import scrapy from scrapy import Reque...

    zhangfaliang 評(píng)論0 收藏0
  • 函數(shù)式編程之柯里化和組合詳解

    摘要:提到函數(shù)式編程,就不得不提柯里化和組合。說(shuō)實(shí)話,在之前的項(xiàng)目開(kāi)發(fā)中,對(duì)柯里化和組合的運(yùn)用不是太多,因?yàn)椴惶宄?yīng)該在哪些情況下應(yīng)該使用它們。所以在這篇文章中,我們將詳細(xì)的介紹柯里化和組合的用法以及使用場(chǎng)景。 提到函數(shù)式編程,就不得不提柯里化和組合。說(shuō)實(shí)話,在之前的項(xiàng)目開(kāi)發(fā)中,對(duì)柯里化和組合的運(yùn)用不是太多,因?yàn)椴惶宄?yīng)該在哪些情況下應(yīng)該使用它們。所以在這篇文章中,我們將詳細(xì)的介紹柯里化...

    Jonathan Shieber 評(píng)論0 收藏0
  • 2016年,我對(duì)爬蟲(chóng)的總結(jié)

    摘要:都說(shuō)年末了,該給自己寫(xiě)寫(xiě)總結(jié)了。我現(xiàn)在做一些簡(jiǎn)單的爬蟲(chóng)都會(huì)用它。并且對(duì)數(shù)據(jù)的實(shí)時(shí)性要求較高,或者爬數(shù)據(jù)的時(shí)候封的太厲害了。對(duì)于這一類(lèi)的爬蟲(chóng)。消息隊(duì)列用于分發(fā)消息給某個(gè)爬蟲(chóng)節(jié)點(diǎn)。爬蟲(chóng)節(jié)點(diǎn)完成具體的爬蟲(chóng),格式化爬蟲(chóng)數(shù)據(jù)。最后,感謝我的,謝謝 都說(shuō)年末了,該給自己寫(xiě)寫(xiě)總結(jié)了。今天我想談一談的是我在公司這一年多里的負(fù)責(zé)的部分工作---爬蟲(chóng)。做了這么久的爬蟲(chóng),是該寫(xiě)點(diǎn)什么,留下點(diǎn)什么。在我所負(fù)責(zé)...

    netmou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<