• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • python爬蟲-淘寶商品比價定向爬蟲

    淘寶商品比價定向爬蟲

    內容是根據中國大學嵩天老師的python網絡爬蟲與信息提取進行的
    視頻課件中的方法失效了,在其基礎上改了一點點。

    功能描述:

    目的:獲取淘寶搜索頁面信息,提取其中的商品名稱和價格
    理解:淘寶搜索接口,翻頁處理
    技術路線: requests-re
    查看淘寶robots.txt,有協議。。。但還是可以爬= =。。在這里插入圖片描述

    程序的結構設計

    步驟1:提交商品搜索請求,循環獲取頁面
    步驟2:對于每個頁面,提取商品名稱和價格信息
    步驟3:將信息輸出到屏幕上
    右鍵查看網頁源代碼,尋找到貨品名稱和價格

    在這里插入圖片描述
    F12,進入開發者工具,點擊網絡。
    在這里插入圖片描述
    有很多網站為了防止爬蟲程序爬網站造成網站癱瘓,所以我們的程序在模擬瀏覽器訪問這些網站時,需要攜帶一些headers頭部信息才能訪問,最常見的有User-Agent,referer、cookie等參數。
    代碼

    # 2.py
    import re
    import requests
    
    def getHTMLText(url, header):    
        try:
            r = requests.get(url, headers=header, timeout=30)
            r.raise_for_status()          # 判斷連接是否成功
            r.encoding = r.apparent_encoding    # 文本分析的編碼代替整體的編碼
            return r.text  # 輸出文本信息
        except:
            return ""
    
    def parsePage(ilt, html):
        try:
            plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html) #解析文本中的view_price鍵的\d.的信息
            tlt = re.findall(r'\"raw_title\"\:\".*?\"', html) # 最小匹配,約束商品的名稱
            for i in range(len(plt)):
                price = eval(plt[i].split(":")[1]) # 去掉view_price鍵,保留價格信息
                title = eval(tlt[i].split(":")[1])  # 去掉raw_title鍵, 保留商品名稱
                ilt.append([price, title])
        except:
            print("爬取失敗")
    
    def printGoodsList(ilt):
        tplt = "{:4}\t{:8}\t{:16}"   # 表頭設計 
        print(tplt.format("序號", "價格", "商品名稱"))
        count = 0
        for g in ilt:
            count = count + 1
            print(tplt.format(count, g[0], g[1]))
    
    def main():
        goods = "手機"         # 爬取對象
        depth = 2              # 爬取深度,第一頁和第二頁的信息
        start_url = "https://s.taobao.com/search?q=" + goods    # 相關的連接
        header ={"Cookie": 'JSESSIONID=483114CA54D9E3EC44C678F087A292A2; alitrackid=www.taobao.com; lastalitrackid=www.taobao.com; _uab_collina=157184223096624103121517; cookie2=18b4bb6f781bc90523d10a3bc75c6ce3; v=0; _tb_token_=7e7e170193393; uc1=cookie14=UoTbnKsjIcJqLA%3D%3D; enc=ZXGacx4lpUoTzcd6eCVpx2AKQk6M8DEK7wrqMXInKzXGS5m%2B3aWvlfKtwwKxpn8Rp8mRTbqdEGFdEl7YZqGbOQ%3D%3D; uc4=id4=0%40UgQz0UFPEpG%2BWdxWQjDDNiCiCaVR&nk4=0%40sqg47a58uQ8HocwCGoZeH8s%3D; _cc_=WqG3DMC9EA%3D%3D; isg=BLu7T5gtYnPxGF7G9T5FYH7IU58lEM8SMtysqK15B7rRDNruNuB1Y5ENJmznNycK; thw=cn; uc3=lg2=V32FPkk%2Fw0dUvg%3D%3D&id2=UNN78lQManWbHg%3D%3D&nk2=sFCJrt5N&vt3=F8dByuciblXd1qlDkFA%3D; t=d0fb86b989797ef608dfa76ee5c92457; miid=1527146406316383276; mt=ci=2_1; lgc=%5Cu6709%5Cu69D1%5Cu6709; cna=f1Q3FkMFrCMCATr4aHgzB4Vu; tracknick=%5Cu6709%5Cu69D1%5Cu6709; l=dBQbKy8eqkMEv39YBOfChurza77OuIpT8kPzaNbMiICP_J5p5ShOWZQX5IT9Cn1Vns_D835z8-CXBLgW2yCS0-Y3L3k_J_XredTh.; tg=0; hng=CN%7Czh-CN%7CCNY%7C156',
                  "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'
                  }                   # 發送Headers的請求
        infoList = []                 
        for i in range(depth):        # 每個頁面單獨進行處理
            try:
                url = start_url + "&s=" + str(44 * i)  # 每個url連接進行設計
                html = getHTMLText(url, header)        # 獲取網頁
                parsePage(infoList, html)              # 處理頁面,信息
            except:   #頁面錯誤判斷,繼續爬取                      
                continue
        printGoodsList(infoList)
    main()
    

    cookie信息每個人都是不一樣的,上面的是我自己電腦chrome查找到的信息。
    結果:
    在這里插入圖片描述
    在這里插入圖片描述

    版權聲明:本文為weixin_44423372原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_44423372/article/details/102876292

    智能推薦

    Python爬蟲(九)——京東比價定向爬蟲

    文章目錄 Python爬蟲(九)——京東比價定向爬蟲 判斷可行性 查看鏈接 查看robots協議 程序的設計 步驟 方法 def getHTMLText(url) parsePage(ilt, html) printGoodLists(ilt) 完整代碼 Python爬蟲(九)——京東比價定向爬蟲 目標:獲取淘寶搜索頁面的信息,提取其中的商品名稱和價...

    爬蟲學習:淘寶商品價格比價

    最近在學習爬蟲,看的是嵩天老師的視頻,看到淘寶價格爬取的時候,遇到了問題,視頻中的代碼如下: 但是在爬去過程中,發現獲取的列表為空,獲取的html為搜索頁面,猜想可能是淘寶的反爬機制,要求登錄,這時候看到一篇文章:應對淘寶反爬機制 獲得了解決方案,即在代碼中加入cookie和user-agent: cookie 和 user-agent的獲取方法在鏈接中有,即在登錄淘寶后F12,如圖所示:...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡