好久沒有寫爬蟲了,今天研究了下淘寶商品評論的內容。
一開始用最簡單的方法,掛代理,加請求頭,對網頁請求,是抓不到數據的,在網上找了一些相關文章,也基本已經過時了,就是網站邏輯有改動,用舊的方法是抓不到的。研究了一下,終於有了結果。
1. 百度->淘寶,進入官網
最后選擇男裝->西裝,進入寶貝詳情頁。下面開始打開調試模式,快捷鍵Ctrl + Shift + i
2. 想辦法找出評論內容所在地址。
先清空調試欄(點擊如下):
然后刷新頁面,Ctrl + R進行刷新。
下面就開始找評論在哪里。首先點擊XHR,推測評論是有AJAX展示的,點擊后發現不是。
再去Doc里面找找,也不是。那就從All里面一個一個找吧。
嘿,看到了一個東西,有點像:
切,也不對,接着往下找。
堅持不懈地努力下,終於找到了:
下面對這個url進行解析,只要能請求出來,那就沒問題了。
3. 首先,直接添加headers,是請求不到的。那怎么辦呢?一點點試唄。
最后嘗試到,將請求頭,請求參數全部加上,然后攜帶cookie,才能獲取到內容,很難受。
因為,實際生產中,一旦需要驗證cookie,才能獲取正確響應的網站,我個人是沒有太好的解決方法,只要抓取過快,就會被封掉。
代碼如下:
import re import requests headers = { 'Referer': 'https://item.taobao.com/item.htm?spm=a219r.lm874.14.173.2d324edc7BaCKr&id=591671671551&ns=1&abbucket=9', 'User-Agent': '請添加自己的useragent', 'cookie':"這里請添加你自己的cookie" } url = 'https://rate.taobao.com/feedRateList.htm?' query_params = { 'auctionNumId': '569127696985', 'userNumId': '2840752540', 'currentPageNum': '1', 'pageSize': '20', 'rateType': '', 'orderType': 'sort_weight', 'attribute': '', 'sku': '', 'hasSku': 'false', 'folded': '0', 'ua': '098#E1hvhpvEvbQvU9CkvvvvvjiPRFM96jECP2M91j3mPmPv1jYbRFzUljtnPLLytjEHRsKjvpvhvvpvvvhCvvOvUvvvphvEvpCWm2KHvvwzaNoUkC4AVA1lYWmQrEt1pYsptbvqrADn9W2+FfmtEpcyTWexRdIAcUmDYE7reB6k1W29QCyawZ4Q0f0DW3CQog0HsXZpebyCvm9vvvvvphvvvvvv96CvpvB/vvm2phCvhRvvvUnvphvppvvv96CvpCCvkphvC99vvOCzpuyCvv9vvUv0cP8JVvGCvvpvvvvvRphvCvvvvvm5vpvhvvmv99==', '_ksTS': '1563849303999_1462', 'callback': 'jsonp_tbcrate_reviews_list' } response = requests.get(url=url, headers=headers, params=query_params).text print(response) contents = re.compile('"content":"(.*?)"').findall(response) for content in contents: print(content)
代碼沒有任何封裝,能看就行,不影響交流。至於翻頁部分,就不再看了。