国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

愛卡_xcar_汽車詳解抓取

archieyang / 1751人閱讀

摘要:爬蟲練手,主要運用,由于要對內部進行分析,所以就直接用了正則匹配,平時也可以用用,應該更加方便思路讀取首頁,就是如為了全部抓取,我們這里都是結尾找到頁面里面的標簽里面的,這個這個地址就是頁面自動播放的下個頁面同時讀出即圖片地址,然后保存我這

爬蟲練手,主要運用requests,由于要對script內部進行分析,所以就直接用了 re 正則匹配,平時也可以用用Beautifulsoup, 應該更加方便

思路:
  

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

  

找到頁面里面的 script 標簽里面的 " var nextUrl " ,這個這個地址就是頁面自動播放的下個頁面;同時讀出 img src 即 圖片地址,然后保存(我這里是把 說明 等內容全部放進 目標文件的名稱中了,其實大家只要圖片的話完全不需要)

  

遞歸抓取 全部頁面

這里另外做的一點實際 弄了個xcar_lst 記錄所有頁面、圖片等信息,只是留作記錄,暫時沒用

上代碼:
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="xdttpjv" 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)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37570.html

相關文章

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

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • php面向對象詳解

    摘要:前言自從進入版本以來,開始全面地支持面向對象編程。好了,進入正題,面向對象的三大特性分別是封裝性,繼承性以及多態性,使用面向對象開發,讓我們的程序可維護以及擴展性大大提高。 showImg(https://segmentfault.com/img/remote/1460000012257579?w=1920&h=1080); 前言 自從php進入5.0版本以來,PHP開始全面地支持面向...

    xingpingz 評論0 收藏0
  • scrapy汽車之家車型的簡單爬取

    摘要:汽車之家車型的簡單爬取名字自定義配置重新定義起始爬取點所有首字母按照首字母,組合對應的頁面,壓入根據,抓取頁面定義默認的抓取函數品牌編號品牌名品牌品牌小類別品牌小類別對應的頁面品牌小類別的編號品牌小類別名品牌小類別對應的頁面的 汽車之家車型的簡單爬取spider # -*- coding: utf-8 -*- import scrapy from scrapy import Reque...

    zhangfaliang 評論0 收藏0
  • 函數式編程之柯里化和組合詳解

    摘要:提到函數式編程,就不得不提柯里化和組合。說實話,在之前的項目開發中,對柯里化和組合的運用不是太多,因為不太清楚應該在哪些情況下應該使用它們。所以在這篇文章中,我們將詳細的介紹柯里化和組合的用法以及使用場景。 提到函數式編程,就不得不提柯里化和組合。說實話,在之前的項目開發中,對柯里化和組合的運用不是太多,因為不太清楚應該在哪些情況下應該使用它們。所以在這篇文章中,我們將詳細的介紹柯里化...

    Jonathan Shieber 評論0 收藏0
  • 2016年,我對爬蟲的總結

    摘要:都說年末了,該給自己寫寫總結了。我現在做一些簡單的爬蟲都會用它。并且對數據的實時性要求較高,或者爬數據的時候封的太厲害了。對于這一類的爬蟲。消息隊列用于分發消息給某個爬蟲節點。爬蟲節點完成具體的爬蟲,格式化爬蟲數據。最后,感謝我的,謝謝 都說年末了,該給自己寫寫總結了。今天我想談一談的是我在公司這一年多里的負責的部分工作---爬蟲。做了這么久的爬蟲,是該寫點什么,留下點什么。在我所負責...

    netmou 評論0 收藏0

發表評論

0條評論

archieyang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<