python按综合,销量排序抓取100页的淘宝商品列表信息

  

进入淘宝网,分别按综合,销量排序抓取100页的所有商品的列表信息。
  

  

1,按综合
  

        进口再保险   从硒进口webdriver   从selenium.common.exceptions进口TimeoutException   从selenium.webdriver.common.by进口   从selenium.webdriver.support。ui进口WebDriverWait   从selenium.webdriver。支持导入expected_conditions EC   从进口pyquery pyquery pq #获取整个网页的源代码      从配置导入* #可引用congif的所有变量   进口pymongo   进口pymysql      #客户=pymongo.MongoClient (MONGO_URL)   # db=客户(MONGO_DB)      #按综合排序100页         #打开淘宝链接,输入的美食”,搜索   #自动翻页:先得到总页数,再转到_页,确定   #      #浏览器=webdriver.PhantomJS (service_args=service_args)   #浏览器=webdriver.Chrome ()   浏览器=webdriver.Firefox ()   等待=WebDriverWait(浏览器,10)      def搜索():   打印(“正在搜索……”)   试一试:   browser.get (“https://www.taobao.com”) #用这个网页“https://s.taobao.com”,无法输入关键字   输入=wait.until (   EC.presence_of_element_located (By.CSS_SELECTOR, ' #问'))#打开淘宝,右击查看元素,定位到搜索框,选择对应代码,复制但css选择器,其实就是“#问”。   )   提交=wait.until (EC.element_to_be_clickable ((。CSS_SELECTOR’# J_TSearchForm比;div.search-button祝辞按钮”)))   input.send_keys(关键字)#模拟操作,输入内容   submit.click() #点击提交   总=wait.until (EC.presence_of_element_located ((。CSS_SELECTOR’# mainsrp-pager比;div祝辞div祝辞div祝辞div.total '))) #页数   返回total.text   除了TimeoutException:   返回搜索()      #翻页   def next_page (page_number):   打印(“正在翻页”,page_number)   试一试:   输入=wait.until (   #输入框   EC.presence_of_element_located ((。CSS_SELECTOR’# mainsrp-pager比;div祝辞div祝辞div祝辞div.form祝辞输入'))#打开淘宝,右击查看元素,定位到搜索框,选择对应代码,复制但css选择器,其实就是“#问”。   )   #搜索按钮   提交=wait.until (EC.element_to_be_clickable ((。CSS_SELECTOR’# mainsrp-pager比;div祝辞div祝辞div祝辞div.form祝辞span.btn.J_Submit '))) #未修改   input.clear ()   input.send_keys (page_number) #模拟操作,输入页码   submit.click ()   #判断翻页是否成功,找到高亮页码数,由数子判断   wait.until (EC.text_to_be_present_in_element((通过。CSS_SELECTOR’# mainsrp-pager比;div祝辞div祝辞div祝辞ul祝辞li.item。积极的在跨度”),str (page_number)))   get_products ()   除了TimeoutException:   next_page (page_number)      #解析,获取每页的商品并输出   def get_products ():   wait.until (EC.presence_of_all_elements_located((通过。CSS_SELECTOR’# mainsrp-itemlist . items .item '))) #加载所有宝贝   html=browser.page_source   医生=pq (html)   项=doc (“# mainsrp-itemlist . items .item”) . items ()   项目的项目:   产品={   #“照片”:item.find ('。图片。img) .attr (src), #用找到去获取内部元素,选择器是图片,img,用attr获取属性   “图像”:item.find ('。图片。img) .attr (“data-src”), #用找到去获取内部元素,选择器是图片,img,用attr获取属性   “shop_id”: item.find (.shop); (a) .attr (“data-userid”), #店铺id   “data_id”: item.find (.shop); (a) .attr (“data-nid”), #商品id   “链接”:item.find (.pic-box-inner); (.pic); (a) .attr (“href”),   “价格”:item.find (.price)。text()[1: 3], #用文本获取内容   “协议”:item.find (.deal-cnt)。text () [3],   “标题”:item.find (.title)。text ()。替换(“”),   “商店”:item.find (.shop)。text (),   “位置”:item.find (.location)。text ()   }   #打印(产品)   #打印(产品(“位置”))   save_to_mysql(产品)   ”“”   def main ():   试一试:   #搜索()   总==总search() #此时的共100页,   总=int (re.compile ((\ d +)) .search(总).group(1) #用正则表达式提取数100字   #打印(总)   因为我在范围(2 + 1):   next_page(我)   除了例外:   打印(“出错啦”)   最后:#不管有没有异常,都要执行此操作   browser.close() #关浏览器   “‘      def main ():   总=搜索()   总=int (re.compile ((\ d +)) .search(总).group (1))   因为我在范围(2 + 1):   next_page (i) #显示当前爬取网页的页数   打印(“搞定% d ' % i)      def save_to_mysql(产品):   #打印(产品(“位置”))   #,use_unicode=False   试一试:   康涅狄格州=pymysql。连接(主机=' localhost '用户=?passwd=' ', db=test1,端口=3306,charset=use utf8)   坏蛋=conn.cursor() #创建一个游标对象   sql=" "插入women_clothes_zonghe值(% s, % s % s, % s, % s, % s, % s, % s, % s)“”“   cur.execute (sql(产品(“shop_id”)、产品(“商店”),产品(“链接”)、产品(“data_id”)、产品(“标题”)、产品(“价格”),产品(“位置”)、产品(“交易”)、产品('图像')))   # cur.execute (sql)   print(”——————————数据保存成功————————”)   cur.close ()   conn.commit ()   conn.close() #关闭数据   pymysql除外。误差e:   打印(e)      if __name__==癬_main__”:   #连接数据库   康涅狄格州=pymysql。连接(主机=' localhost '用户=?passwd=' ', db=test1,端口=3306,charset=皍se utf8”)   坏蛋=conn.cursor() #创建一个游标对象   如果存在women_clothes_zonghe cur.execute(“删除表”)#如果表存在则删除   #创建表的sql语句   women_clothes_zonghe sqlc=" "“创建表(   shop_id VARCHAR (500),   商店VARCHAR (500),   链接VARCHAR (1000),   data_id varchar (100),   标题VARCHAR (1000),   价格VARCHAR (500),   位置VARCHAR (500),   交易VARCHAR (500),   图像VARCHAR (1000)   ”“”   cur.execute (sqlc) #执行创建数据表操作   main ()   

python按综合,销量排序抓取100页的淘宝商品列表信息