国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Scrapy基于selenium結合爬取淘寶的實例講解

2020-02-15 21:50:35
字體:
來源:轉載
供稿:網友

在對于淘寶,京東這類網站爬取數據時,通常直接使用發送請求拿回response數據,在解析獲取想要的數據時比較難的,因為數據只有在瀏覽網頁的時候才會動態加載,所以要想爬取淘寶京東上的數據,可以使用selenium來進行模擬操作

對于scrapy框架,下載器來說已經沒多大用,因為獲取的response源碼里面沒有想要的數據,因為沒有加載出來,所以要在請求發給下載中間件的時候直接使用selenium對請求解析,獲得完整response直接返回,不經過下載器下載,上代碼

from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsimport timefrom scrapy.http.response.html import HtmlResponsefrom scrapy.http.response.text import TextResponsefrom selenium.webdriver import ActionChains class TaobaoMiddleware(object):  #處理請求函數 def process_request(self,request,spider):  #聲明一個Options對象  opt = Options()  #給對象添加一個--headless參數,表示無頭啟動  opt.add_argument('--headless')  #把配置參數應用到驅動創建的對象  driver = webdriver.Chrome(options=opt)  #打開requests中的地址  driver.get(request.url)   #讓瀏覽器滾動到底部  for x in range(1,11):   j = x / 10   js = "document.documentElement.scrollTop = document.documentElement.scrollHeight*%f"%j   driver.execute_script(js)   #每次滾動等待0.5s   time.sleep(5)   #獲取下一頁按鈕的標簽  next_btn =driver.find_element_by_xpath('//span[contains(text(),"下一頁")]')  #睡眠0.5秒  time.sleep(0.5)  #對下一頁標簽進行鼠標右鍵觸發事件  ActionChains(driver).context_click(next_btn).click().perform()  # driver.save_screenshot('截圖.png')  #把驅動對象獲得的源碼賦值給新變量  page_source = driver.page_source  #退出  driver.quit()   #根據網頁源代碼,創建Htmlresponse對象  response = HtmlResponse(url=request.url,body=page_source,encoding='utf-8',request=request)  #因為返回的是文本消息,所以需要指定字符編碼格式   return response  def process_response(self,request,response,spider):   return response  def process_exception(self,request,exception,spider):  pass

以上這篇Scrapy基于selenium結合爬取淘寶的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦县| 鹤庆县| 钟祥市| 吴桥县| 昌邑市| 淮安市| 信阳市| 丰镇市| 阳春市| 馆陶县| 台州市| 云浮市| 通道| 津南区| 吴江市| 且末县| 新河县| 丰镇市| 田阳县| 颍上县| 页游| 巫溪县| 五华县| 武乡县| 遂宁市| 叶城县| 扎鲁特旗| 北海市| 望都县| 舒兰市| 洪泽县| 北京市| 镇康县| 卢龙县| 武威市| 五峰| 平度市| 成都市| 乐昌市| 石嘴山市| 南漳县|