鱼C论坛

 找回密码
 立即注册
查看: 728|回复: 2

爬取淘宝商品的时候输出不了结果

[复制链接]
发表于 2018-8-17 19:13:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用selenium爬取淘宝商品的时候输出不了结果,求大神:
  1. import re
  2. from selenium import webdriver
  3. from selenium.common.exceptions import TimeoutException
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support import expected_conditions as EC
  6. from selenium.webdriver.support.wait import WebDriverWait
  7. from pyquery import PyQuery as pq

  8. browser=webdriver.Chrome()
  9. wait=WebDriverWait(browser,10)

  10. def search():
  11.     try:
  12.         browser.get('https://www.taobao.com')
  13.         input=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#q')))
  14.         submit=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#J_TSearchForm > div.search-button > button')))
  15.         input.send_keys('手机')
  16.         submit.click()
  17.         total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#spulist-pager > div > div > div > div.total')))
  18.         return total.text
  19.     except TimeoutException:
  20.         return search()

  21. def next_page(page_number):
  22.     try:
  23.         input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#spulist-pager > div > div > div > div.form > input')))
  24.         submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#spulist-pager > div > div > div > div.form > span.btn.J_Submit')))
  25.         input.clear()
  26.         input.send_keys(page_number)
  27.         submit.click()
  28.         wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,'#spulist-pager > div > div > div > ul > li.item.active > span'),str(page_number)))
  29.     except TimeoutException:
  30.         next_page(page_number)

  31. def get_products():
  32.     wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#spulist-grid .grid-container row .grid-item col')))
  33.     html=browser.page_source
  34.     doc=pq(html)
  35.     items=doc('#spulist-grid .grid-container row  .grid-item col').items()
  36.     for item in items:
  37.         products={
  38.                 'images':item.find('.img-box .img').attr('src'),
  39.                 'price':item.find('.price').text(),
  40.                 'deal':item.find('.week-sale').text(),
  41.                 'title':item.find('.feature').text(),
  42.                 'screen':item.find('.important-key').text()
  43.         }
  44.         print(products)

  45. def main():
  46.     total=search()
  47.     total=int(re.compile('(\d+)').search(total).group(1))
  48.     for i in range(2,total+1):
  49.         next_page(i)

  50. if __name__=='__main__':
  51.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 20:27:00 | 显示全部楼层
1、首先要检查服务器返回是否200
2、检查正则表达式无误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 19:58:14 | 显示全部楼层
凌九霄 发表于 2018-8-17 20:27
1、首先要检查服务器返回是否200
2、检查正则表达式无误

没问题呀,应该是网页的ID、class什么的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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