摘要:簡介上一個博文已經講述了如何使用跳過檢測并爬取天貓商品數據,所以在此不再詳細講,有需要思路的可以查看另外一篇博文。
簡介
上一個博文已經講述了如何使用selenium跳過webdriver檢測并爬取天貓商品數據,所以在此不再詳細講,有需要思路的可以查看另外一篇博文。
源代碼# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from pyquery import PyQuery as pq from time import sleep import random #定義一個taobao類 class taobao_infos: #對象初始化 def __init__(self): url = "https://login.taobao.com/member/login.jhtml" self.url = url options = webdriver.ChromeOptions() options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 不加載圖片,加快訪問速度 options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 此步驟很重要,設置為開發者模式,防止被各大網站識別出來使用了Selenium self.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options) self.wait = WebDriverWait(self.browser, 10) #超時時長為10s #登錄淘寶 def login(self): # 打開網頁 self.browser.get(self.url) # 自適應等待,點擊密碼登錄選項 self.browser.implicitly_wait(30) #智能等待,直到網頁加載完畢,最長等待時間為30s self.browser.find_element_by_xpath("http://*[@class="forget-pwd J_Quick2Static"]").click() # 自適應等待,點擊微博登錄宣傳 self.browser.implicitly_wait(30) self.browser.find_element_by_xpath("http://*[@class="weibo-login"]").click() # 自適應等待,輸入微博賬號 self.browser.implicitly_wait(30) self.browser.find_element_by_name("username").send_keys(weibo_username) # 自適應等待,輸入微博密碼 self.browser.implicitly_wait(30) self.browser.find_element_by_name("password").send_keys(weibo_password) # 自適應等待,點擊確認登錄按鈕 self.browser.implicitly_wait(30) self.browser.find_element_by_xpath("http://*[@class="btn_tip"]/a/span").click() # 直到獲取到淘寶會員昵稱才能確定是登錄成功 taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick "))) # 輸出淘寶昵稱 print(taobao_name.text) # 模擬向下滑動瀏覽 def swipe_down(self,second): for i in range(int(second/0.1)): #根據i的值,模擬上下滑動 if(i%2==0): js = "var q=document.documentElement.scrollTop=" + str(300+400*i) else: js = "var q=document.documentElement.scrollTop=" + str(200 * i) self.browser.execute_script(js) sleep(0.1) js = "var q=document.documentElement.scrollTop=100000" self.browser.execute_script(js) sleep(0.1) # 爬取淘寶 我已買到的寶貝商品數據 def crawl_good_buy_data(self): # 對我已買到的寶貝商品數據進行爬蟲 self.browser.get("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm") # 遍歷所有頁數 for page in range(1,1000): # 等待該頁面全部已買到的寶貝商品數據加載完畢 good_total = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#tp-bought-root > div.js-order-container"))) # 獲取本頁面源代碼 html = self.browser.page_source # pq模塊解析網頁源代碼 doc = pq(html) # # 存儲該頁已經買到的寶貝數據 good_items = doc("#tp-bought-root .js-order-container").items() # 遍歷該頁的所有寶貝 for item in good_items: good_time_and_id = item.find(".bought-wrapper-mod__head-info-cell___29cDO").text().replace(" ","").replace(" ","") good_merchant = item.find(".seller-mod__container___1w0Cx").text().replace(" ","").replace(" ","") good_name = item.find(".sol-mod__no-br___1PwLO").text().replace(" ", "").replace(" ", "") # 只列出商品購買時間、訂單號、商家名稱、商品名稱 # 其余的請自己實踐獲取 print(good_time_and_id, good_merchant, good_name) print(" ") # 大部分人被檢測為機器人就是因為進一步模擬人工操作 # 模擬人工向下瀏覽商品,即進行模擬下滑操作,防止被識別出是機器人 # 隨機滑動延時時間 swipe_time = random.randint(1, 3) self.swipe_down(swipe_time) # 等待下一頁按鈕 出現 good_total = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".pagination-next"))) # 點擊下一頁按鈕 good_total.click() sleep(2) if __name__ == "__main__": # 使用之前請先查看當前目錄下的使用說明文件README.MD # 使用之前請先查看當前目錄下的使用說明文件README.MD # 使用之前請先查看當前目錄下的使用說明文件README.MD chromedriver_path = "/Users/bird/Desktop/chromedriver.exe" #改成你的chromedriver的完整路徑地址 weibo_username = "改成你的微博賬號" #改成你的微博賬號 weibo_password = "改成你的微博密碼" #改成你的微博密碼 a = taobao_infos() a.login() #登錄 a.crawl_good_buy_data() #爬取淘寶 我已買到的寶貝商品數據使用教程
點擊這里下載下載chrome瀏覽器
查看chrome瀏覽器的版本號,點擊這里下載對應版本號的chromedriver驅動
pip安裝下列包
[x] pip install selenium
點擊這里登錄微博,并通過微博綁定淘寶賬號密碼
在main中填寫chromedriver的絕對路徑
在main中填寫微博賬號密碼
#改成你的chromedriver的完整路徑地址 chromedriver_path = "/Users/bird/Desktop/chromedriver.exe" #改成你的微博賬號 weibo_username = "改成你的微博賬號" #改成你的微博密碼 weibo_password = "改成你的微博密碼"演示圖片
爬蟲過程圖片查看不了點擊這里
爬蟲結果圖片查看不了點擊這里
所有關于爬蟲的項目都放在github了,有需要的可以去GitHub倉庫
項目持續更新,歡迎您star本項目
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43368.html
摘要:簡介現在爬取淘寶,天貓商品數據都是需要首先進行登錄的。把關鍵點放在如何爬取天貓商品數據上。是一款優秀的自動化測試工具,所以現在采用進行半自動化爬取數據。以開頭的在中表示類名,以開頭的在中表示名。 簡介 現在爬取淘寶,天貓商品數據都是需要首先進行登錄的。上一節我們已經完成了模擬登錄淘寶的步驟,所以在此不詳細講如何模擬登錄淘寶。把關鍵點放在如何爬取天貓商品數據上。 過去我曾經使用get/p...
摘要:是一款優秀的自動化測試工具,所以現在采用進行半自動化爬取數據,支持模擬登錄淘寶和自動處理滑動驗證碼。編寫思路由于現在大型網站對工具進行檢測,若檢測到,則判定為機器人,訪問被拒絕。以開頭的在中表示類名,以開頭的在中表示名。 簡介 模擬登錄淘寶已經不是一件新鮮的事情了,過去我曾經使用get/post方式進行爬蟲,同時也加入IP代理池進行跳過檢驗,但隨著大型網站的升級,采取該策略比較難實現了...
摘要:完整代碼火狐瀏覽器驅動下載鏈接提取碼雙十一剛過,想著某寶的信息看起來有些少很難做出購買決定。完整代碼&火狐瀏覽器驅動下載鏈接:https://pan.baidu.com/s/1pc8HnHNY8BvZLvNOdHwHBw 提取碼:4c08雙十一剛過,想著某寶的信息看起來有些少很難做出購買決定。于是就有了下面的設計:?既然有了想法那就趕緊說干就干趁著雙十二還沒到一、準備工作:安裝 :selen...
摘要:基于此,我爬取了淘寶上多條月餅的銷售數據,為大家展示了一幅漂亮的可視化大屏,解決大家心目中的問題。模塊的安裝與配置這次爬取淘寶,采用的是最簡單的方式控制瀏覽器進行自動化操作,中途只需要掃碼登陸一次,即可完成整個數據的爬取。 ...
摘要:自動化爬取淘寶中的訂單這是淘寶會員登錄頁。但淘寶的反爬機制很難算出,很多都是通過的計算,所以不得不學習源碼,反到最后看的頭痛。。。 自動化爬取淘寶中的訂單 這是 淘寶會員登錄頁 。因為之前做的爬蟲都是通過框架或從登錄頁取得Cookie,再注入進去實現登陸過程的。但淘寶的反爬機制很難算出Cookie,很多Cookie都是通過JS的計算,所以不得不學習源碼,反到最后看的頭痛。。。 第一次嘗...
閱讀 3577·2021-11-24 10:19
閱讀 3710·2021-09-30 09:47
閱讀 1282·2019-08-30 15:56
閱讀 780·2019-08-29 15:11
閱讀 893·2019-08-29 13:43
閱讀 3557·2019-08-28 18:25
閱讀 2149·2019-08-26 13:27
閱讀 1427·2019-08-26 11:44