找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2323|回复: 0

[求助] 淘宝爬取内容求助

8

主题

22

帖子

22

积分

贫民

积分
22
欢乐的舒畅 发表于 2019-6-2 01:38:32 | 显示全部楼层 |阅读模式
  1. from selenium import webdriver
  2. from selenium.common.excepti** import TimeoutException
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support import expected_conditi** as EC
  5. from selenium.webdriver.support.wait import WebDriverWait
  6. from pyquery import PyQuery as pq
  7. from pymongo import MongoClient

  8. #创建mogodb数据对象
  9. client=MongoClient()
  10. db=client['taobao']
  11. collection=db['taobao']

  12. browser=webdriver.Chrome()
  13. wait=WebDriverWait(browser,10)
  14. max_page=100

  15. def index_page():
  16.     try:
  17.         browser.get('https://www.taobao.com')
  18.         input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#q')))
  19.         submit = wait.until(
  20.             EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_TSearchForm > div.search-button > button')))
  21.         input.send_keys('ipad')
  22.         submit.click()
  23.         print('正在爬取第', page, '页')
  24.         get_products()
  25.         num = browser.find_element_by_link_text('下一页')
  26.         num.click()
  27.     except TimeoutException:
  28.         print('time out!')
  29.         return index_page()

  30. # 提取商品数据
  31. def get_products():
  32.     wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'mainsrp-itemlist.items.item')))
  33.     html=browser.page_source
  34.     doc=pq(html)
  35.     items=doc('#mainsrp-itemlist.items.item').items()
  36.     for item in items:
  37.         product={
  38.             'image': item.find('.pic a img').attr('data-src'),
  39.             'price': item.find('.price').text(),
  40.             'deal': item.finc('.deal-cnt').text(),
  41.             'title': item.find('.title').text(),
  42.             'shop': item.find('.shop').text(),
  43.             'location': item.find('.location').text()
  44.         }
  45.         print(product)
  46.         save_to_mogo(product)

  47. #保存到mogodb
  48. def save_to_mogo(result):
  49.     try:
  50.         if collection.insert(result):
  51.             print('保存成功',result)
  52.     except Exception:
  53.         print('保存失败',result)

  54. if __name__=='__main__':
  55.     for page in range(2, max_page + 1):
  56.         index_page(page)
复制代码
自己想爬取淘宝上有关“ipad"商品的信息,这是自己根据别人的代码修改的,但是自己修改后,为何总是显示time out呢,求助。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表