成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

scrapy抓取淘寶女郎

zhoutao / 788人閱讀

摘要:抓取淘寶女郎準(zhǔn)備工作首先在淘寶女郎的首頁這里查看,當(dāng)然想要爬取更多的話,當(dāng)然這里要查看翻頁的不過這操蛋的地方就是這里的翻頁是使用加載的,這個(gè)就有點(diǎn)尷尬了,找了好久沒有找到,這里如果有朋友知道怎樣翻頁的話,麻煩告訴我一聲,謝謝了,不過就這樣坐

scrapy抓取淘寶女郎 準(zhǔn)備工作

首先在淘寶女郎的首頁這里查看,當(dāng)然想要爬取更多的話,當(dāng)然這里要查看翻頁的url,不過這操蛋的地方就是這里的翻頁是使用javascript加載的,這個(gè)就有點(diǎn)尷尬了,找了好久沒有找到,這里如果有朋友知道怎樣翻頁的話,麻煩告訴我一聲,謝謝了...,不過就這樣坐以待斃了嗎,所以就在chrome上搜,結(jié)果看到有人直接使用的這個(gè)網(wǎng)頁,我當(dāng)時(shí)一看感覺神奇的樣子,這就是簡(jiǎn)化版的首頁啊,只需要改變page的數(shù)字就可以實(shí)現(xiàn)遍歷了,不過還是有點(diǎn)小失落,為什么人家就能找到呢,這個(gè)我還是希望知道的朋友能夠分享一下,我也會(huì)查看相關(guān)的資料,把這個(gè)空缺不上的,好了,現(xiàn)在開我們的工作了

我們的目的是抓取冊(cè)以及相關(guān)的信息,所以我們需要隨便打開一個(gè)淘女郎的相冊(cè)頁面,然后隨便進(jìn)入一個(gè)相冊(cè)即可,很顯然這里的相冊(cè)是異步加載的,因此我們需要抓包,這里我抓到了含有相冊(cè)的url以及相關(guān)信息的json數(shù)據(jù),如下圖:

然后我們查看它的url為https://mm.taobao.com/album/j...

通過我嘗試之后這條url可以簡(jiǎn)化為:

https://mm.taobao.com/album/j...{0}&album_id={1}&top_pic_id=0&page={2}&_ksTS=1493654931946_405

其中user_id是每一個(gè)女郎對(duì)的id,ablum_id時(shí)每一個(gè)相冊(cè)的id,這里一個(gè)女郎有多個(gè)相冊(cè),因此這個(gè)id是不同的,但是page就是要翻頁的作用了,可以看到我去掉了callback=json155這一項(xiàng),因?yàn)槿绻由线@一項(xiàng),返回的數(shù)據(jù)就不是json類型的數(shù)據(jù),其中page是在抓包的時(shí)候點(diǎn)擊翻頁才會(huì)在下面出現(xiàn)的,可以看到同一個(gè)相冊(cè)返回的除了page不同之外,其他的都是相同的,因此這里通過page來實(shí)現(xiàn)翻頁的數(shù)據(jù)

上面分析了每一個(gè)相冊(cè)的url數(shù)據(jù)的由來,可以看到我們下面需要找到user_id,ablum_id這兩個(gè)數(shù)據(jù).

user_id的獲取:我們打開首頁,然后打開chrome的調(diào)試工具,可以看到每一個(gè) 女郎的url中都包含user_id這一項(xiàng),因此我們只需要通過這個(gè)實(shí)現(xiàn)翻頁然后獲取每一個(gè)女郎的url,之后用正則將user_id匹配出來即可,代碼如下

ps=response.xpath("http://p[@class="top"]")
        for p in ps:
            item=JrtItem()
            href=p.xpath("a/@href").extract()   #這個(gè)得到的是一個(gè)數(shù)組url
            if href:
                item["user_id"]=self.pattern_user_id.findall(href[0])[0]   #用則正匹配出user_id,其中的正則為  pattern_user_id=re.compile(r"user_id=(d+)")

ablum_id的獲?。合胍@取ablum_id當(dāng)然要在相冊(cè)的頁面查找,于是我們?cè)谙鄡?cè)頁面抓包獲得了如下圖的頁面

通過上圖我們清晰的知道每一個(gè)相冊(cè)的里面包含多少相冊(cè),但最令人開心的是在這個(gè)頁面中不是動(dòng)態(tài)加載,因此我們可以查看它的源碼,當(dāng)我們查看源碼的時(shí)候,我們可以看到和user_id一樣,這里的ablum_id包含在了href中,因此我們只需要找到每一張相冊(cè)的url,然后用正則匹配處來即可,其中這個(gè)頁面的url簡(jiǎn)化為:

https://mm.taobao.com/self/al...{0}&page={1}

所以我們可以通過上面得到的user_id構(gòu)成請(qǐng)求即可,代碼如下:

 ## 解析得到ablum_id,根據(jù)ablum_id解析請(qǐng)求出每一個(gè)相冊(cè)的json數(shù)據(jù)
    def parse_ablum_id(self,response):
        if response.status==200:
            print response.url
            item = response.meta["item"]
            soup = BeautifulSoup(response.text, "lxml")
            divs = soup.find_all("div", class_="mm-photo-cell-middle")
            for div in divs:
                href = div.find("h4").find("a").get("href")
                items = self.pattern_ablum_id.findall(href)    #這里就得到了ablum_id

上面已經(jīng)獲得了user_idablum_id,那么現(xiàn)在就可以請(qǐng)求每一個(gè)相冊(cè)的json數(shù)據(jù)了,這個(gè)就不用多說了,詳情請(qǐng)看源代碼

MongoDB存儲(chǔ) 安裝方式

Windows下安裝請(qǐng)看我的MogoDB干貨篇

ubantu直接用sudo apt-get install安裝即可

安裝對(duì)應(yīng)python的包:pip install pymongo

安裝完成以后就可以連接了,下面貼出我的連接代碼

from pymongo import MongoClient

class MongoDBPipelines(object):
    collection_name = "taobao"
    def open_spider(self,spider):
        self.client = MongoClient("localhost", 27017)   #連接,這里的27017是默認(rèn)的額端口號(hào)
        self.db = self.client["python"]               #python是自己的數(shù)據(jù)庫,當(dāng)然這里不用提前建好也可以

    def close_spider(self, spider):            
        self.client.close()

    def process_item(self,item,spider):
        self.db[self.collection_name].update({"picId":item["picId"]}, {"$set": dict(item)}, True)
        return item

現(xiàn)在這就算好了,當(dāng)然這里還有很多東西需要優(yōu)化的,像代理池。。。最后本人想在暑期找一個(gè)地方實(shí)習(xí),但是一直沒有好的地方,希望有實(shí)習(xí)的地方推薦的可以聯(lián)系我,在這里先謝謝了

推薦

最后推薦博主的一些源碼

scrapy爬取妹子網(wǎng)站實(shí)現(xiàn)圖片的存儲(chǔ),這個(gè)只是一個(gè)演示怎樣存儲(chǔ)圖片的實(shí)例,因此不想過多的投入時(shí)間去爬,因此寫的不是很詳細(xì)

scrapy爬取知乎用戶的詳細(xì)信息

更多文章請(qǐng)一步本人博客

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44340.html

相關(guān)文章

  • python

    Python裝飾器為什么難理解? 無論項(xiàng)目中還是面試都離不開裝飾器話題,裝飾器的強(qiáng)大在于它能夠在不修改原有業(yè)務(wù)邏輯的情況下對(duì)代碼進(jìn)行擴(kuò)展,權(quán)限校驗(yàn)、用戶認(rèn)證、日志記錄、性能測(cè)試、事務(wù)處理、緩存等都是裝飾器的絕佳應(yīng)用場(chǎng)景,它能夠最大程度地對(duì)代碼進(jìn)行復(fù)用。 但為什么初學(xué)者對(duì)裝飾器的理解如此困難,我認(rèn)為本質(zhì)上是對(duì)Py… Python 實(shí)現(xiàn)車牌定位及分割 作者用 Python 實(shí)現(xiàn)車牌定位及分割的實(shí)踐。 ...

    chenatu 評(píng)論0 收藏0
  • 爬蟲 - 收藏集 - 掘金

    摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個(gè)爬取多頁面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個(gè)可以下載多頁面的爬蟲,如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...

    1fe1se 評(píng)論0 收藏0
  • 23個(gè)Python爬蟲開源項(xiàng)目代碼,包含微信、淘寶、豆瓣、知乎、微博等

    摘要:今天為大家整理了個(gè)爬蟲項(xiàng)目。地址新浪微博爬蟲主要爬取新浪微博用戶的個(gè)人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過多賬號(hào)登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...

    jlanglang 評(píng)論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評(píng)論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

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

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

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

0條評(píng)論

zhoutao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<