Python怎么使用硒模块实现模拟浏览器抓取淘宝商品美食信息功能

  介绍

这篇文章给大家分享的是有关Python怎么使用硒模块实现模拟浏览器抓取淘宝商品美食信息功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

import 再保险   得到selenium  import  webdriver   得到selenium.webdriver.common.by  import    得到selenium.webdriver.support.ui  import  WebDriverWait   得到selenium.webdriver.support  import  expected_conditions  as 电子商务   得到selenium.common.exceptions  import  TimeoutException   得到pyquery  import  pyquery  as  pq   得到bs4  import  BeautifulSoup   得到pymongo  import  MongoClient   得到pymongo.errors  import  PyMongoError   时间=url  & # 39; http://www.taobao.com& # 39;   时间=KEYWORD  & # 39;美食& # 39;   #,monogdb配置信息   时间=MONGO_HOST “localhost"   时间=MONGO_DATABASE “taobao"   时间=MONGO_TABLE “meishi"   时间=client  MongoClient(主机=MONGO_HOST)   db =,客户机(MONGO_DATABASE)   #,PhantomJS 命令行相关配置   #,参见http://phantomjs.org/api/command-line.html   SERVICE_ARGS =,(& # 39;——磁盘高速缓存=真正的# 39;,,& # 39;——载入图片=假# 39;】=#,driver  webdriver.Chrome(), #,有界面   时间=driver  webdriver.PhantomJS (service_args=service_args), #,无界面   delay =10   时间=wait  WebDriverWait(司机,,延迟)   #,打印(& # 39;windows 大小# 39;,,driver.get_window_size ())   #,PhantomJs()的浏览器窗口很小,宽高只有400,*,300   driver.maximize_window(), #,窗口最大化,#,对于PhantomJS来说设置窗口大小很关键,如果不设置,经常会出现问题   #,driver.set_window_size(1920, 1080), #,设置浏览器窗口大小   #,模拟在淘宝网页中输入关键字搜索   def 搜索():   打印才能(“准备搜索,% s", %,关键字)   尝试才能:   ,,,driver.get (url)   ,,,input_box =, wait.until (   ,,,,,EC.presence_of_element_located ((By.CSS_SELECTOR,,“输入# q"))   ,,,)   ,,,search_btn =, wait.until (EC.element_to_be_clickable (   ,,,,,(By.CSS_SELECTOR, & # 39; # J_TSearchForm 祝辞,div.search-button 祝辞,按钮# 39;)))   ,,,input_box.send_keys(关键字)   ,,,search_btn.click ()   ,,,total_page_str =, wait.until (   ,,,,,EC.presence_of_element_located (   ,,,,,,,(By.CSS_SELECTOR, & # 39; div.total& # 39;)))。text   ,,,total_page_num =, int (re.search (“(\ d +)“,, total_page_str) .group (1))   ,,,item_list =, get_goods_by_beautifulsoup ()   ,,,save_to_mongodb (item_list)   ,,,return  total_page_num   except 才能;TimeoutError:   ,,,print(“搜索% s超时“,,关键字)   ,,,print(“重新尝试搜索:,% s",,关键字)   ,,,搜索()   #,根据页码获取指定页数据,并将其保存到数据库中   def  get_page (page_num):   打印才能(“正在获取第% d页数据“,%,page_num)   尝试才能:   ,,,page_num_box =, wait.until (   ,,,,,EC.presence_of_element_located (   ,,,,,,,(By.CSS_SELECTOR,“div.form 祝辞,input")))   ,,,ok_btn =, wait.until (EC.element_to_be_clickable (   ,,,,,(By.CSS_SELECTOR, & # 39; div.form 祝辞,span.btn.J_Submit& # 39;)))   ,,,page_num_box.clear ()   ,,,page_num_box.send_keys (page_num)   ,,,ok_btn.click ()   ,,,wait.until (   ,,,,,EC.text_to_be_present_in_element (   ,,,,,,,(By.CSS_SELECTOR,   ,,,,,,,,& # 39;li.item.active 祝辞,span.num& # 39;),   ,,,,,,,str (page_num)))   ,,,item_list =, get_goods_by_beautifulsoup ()   ,,,save_to_mongodb (item_list)   except 才能;TimeoutException:   ,,,print(“请求第% d页失败“,%,page_num)   ,,,print(“尝试重新获取第% d页“,%,page_num)   ,,,return  get_page (page_num)   def  get_goods_by_pyquery ():   & # 39;才能& # 39;& # 39;   ,,通过pyquery库解析数据   获才能取商品的图片url、价格,标题,成交量,店铺名称,店铺位置   & # 39;才能& # 39;& # 39;   wait.until才能(EC.presence_of_element_located (   ,,,(By.CSS_SELECTOR,,“# mainsrp-itemlist  .items  .item")))   html 才能=driver.page_source   doc 才能=,pq (html)   items 才能=,列表(doc (& # 39; # mainsrp-itemlist  .items  .item& # 39;) . items ())   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python怎么使用硒模块实现模拟浏览器抓取淘宝商品美食信息功能