鱼C论坛

 找回密码
 立即注册
查看: 1408|回复: 1

爬虫

[复制链接]
发表于 2021-11-2 23:32:17 | 显示全部楼层 |阅读模式

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

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

x
急!急!急!
题目:访问https://www.suning.com
使用selenium实现输入iphone进行搜索,跳转到iphone商品页面
爬取所有商品的名称、价格和评论数据,存为json文件

有没有兄弟会这个题目啊,我以及爬取出内容了,但是不会截取和存为json文件
我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from time import sleep
import json
driver = webdriver.Chrome()
driver.get('https://www.suning.com')
driver.maximize_window()
wait = WebDriverWait(driver,10)
_input = wait.until(EC.presence_of_element_located((By.ID,'searchKeywords')))
_input.clear()
_input.send_keys('iphone')
_input.send_keys(Keys.ENTER)
js = 'window.scrollTo(0,document.body.scrollHeight)'
driver.execute_script(js)
p = driver.page_source
t = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#product-list')))
sleep(10)
print(t)
for item in t:
    print(item.text)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-3 11:38:54 | 显示全部楼层
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.support.ui import WebDriverWait
  4. from selenium.webdriver.support import expected_conditions as EC
  5. from selenium.webdriver.common.keys import Keys
  6. import json
  7. import time
  8. from lxml import etree

  9. driver = webdriver.Chrome()
  10. driver.get('https://www.suning.com')
  11. driver.maximize_window()
  12. wait = WebDriverWait(driver, 10)
  13. _input = wait.until(EC.presence_of_element_located((By.ID, 'searchKeywords')))
  14. _input.clear()
  15. _input.send_keys('iphone')
  16. _input.send_keys(Keys.ENTER)
  17. js = 'window.scrollTo(0,document.body.scrollHeight)'
  18. driver.execute_script(js)
  19. time.sleep(3)
  20. wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#product-list')))
  21. html = etree.HTML(driver.page_source)
  22. lis = html.xpath('//li[contains(@class,"item-wrap")]')  # 商品列表
  23. result = []
  24. for li in lis:
  25.     price = li.xpath('.//span[@class="def-price"]/text()')[-1]
  26.     description = li.xpath('.//a[@tabindex="0"]/@aria-label')[0]
  27.     comment = li.xpath('.//a[@tabindex="-1"]/i/text()')[0]
  28.     data = {'price': price, 'description': description, 'comment': comment}
  29.     result.append(data)
  30. with open('test.json', 'w', encoding='utf-8') as f:
  31.     f.write(json.dumps(result, ensure_ascii=False))
  32.     # f.write(json.dumps(result, indent=2, ensure_ascii=False))  # 如果要缩进好看一点就用这个
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 00:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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