爬取淘宝商品信息selenium+pyquery+mongodb
'''
爬取淘宝商品信息,通过selenium获得渲染后的源码,pyquery解析,mongodb存储
'''from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from urllib.parse import quote
from pyquery import PyQuery as pq
import pymongoBASEURL = 'https://s.taobao.com/search?q='
KEYWORD = 'python'
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
client = pymongo.MongoClient('mongodb://admin:admin123@localhost:27017/')
db = client.taobao
collection = db.productsdef get_page(page):```跳转到传入页面,获得源码,调用商品解析函数```#driver = webdriver.Chrome()#wait = WebDriverWait(driver, 10)try:driver.get(BASEURL + quote(KEYWORD))print('你当前访问的是第%d页' % page)if page > 1:J_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager div.form > input' )))J_submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#mainsrp-pager div.form > span.btn.J_Submit')))J_input.clear()J_input.send_keys(page)J_submit.click()wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,'#mainsrp-pager li.item.active > span'), str(page)))wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.m-itemlist .items .item')))html = driver.page_sourceget_products(html)except TimeoutException:print('try again')get_page(page)def get_products(html):'''解析出每件商品信息,调用存储函数存储'''doc = pq(html)items = doc('#mainsrp-itemlist .items .item').items()for item in items:product = {}product['image'] = item.find('.img').attr('src')product['price'] = item.find('.price').text()product['payment'] = item.find('.deal-cnt').text()product['title'] = item.find('.title').text()product['location'] = item.find('.location').text()product['shop'] = item.find('.shopname').text()product['shop-link'] = item.find('.shopname').attr('href')print(product)save_to_mongo(product)def save_to_mongo(product):```存储函数,将商品信息存入数据库```try:if collection.insert(product):print('存储成功')except Exception as e:print('失败',e.__class__)if __name__ == '__main__':for i in range(1, 3):get_page(i)
转载于:https://www.cnblogs.com/Wang-Y/p/9401128.html
爬取淘宝商品信息selenium+pyquery+mongodb相关推荐
- 利用Selenium爬取淘宝商品信息
文章来源:公众号-智能化IT系统. 一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...
- python爬虫——用selenium爬取淘宝商品信息
python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...
- python+scrapy简单爬取淘宝商品信息
python结合scrapy爬取淘宝商品信息 一.功能说明: 已实现功能: 通过scrapy接入selenium获取淘宝关键字搜索内容下的商品信息. 待扩展功能: 爬取商品中的全部其他商品信息. 二. ...
- 使用python爬取淘宝商品信息
使用python爬虫爬取淘宝商品信息 使用的模块主要有 selenium ,time , re, from selenium import webdriver import time import c ...
- 2021-11-16爬取淘宝商品信息时如何获取cookie
爬取淘宝商品信息时如何获取cookie ###一.基本环境 1.win10系统 2.火狐浏览器 3.编程软件anaconda 4.淘宝的robots:https://www.taobao.com/ro ...
- Python爬取淘宝商品信息保存到Excel
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 爬虫学习笔记——Selenium爬取淘宝商品信息并保存
在使用selenium来模拟浏览器操作,抓取淘宝商品信息前,先完成一些准备工作. 准备工作:需要安装selenium,pyquery,以及Chrome浏览器并配置ChromeDriver. 安装sel ...
- Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
- 江湖小白之一起学Python (五)爬取淘宝商品信息
趁热需打铁,随着这几天的鸡血澎湃,我们来实现一下爬取淘宝商品信息,我记得几年前曾用python写了下抓取淘宝天猫,京东,拍拍的爬虫,专门采集商品信息,图片,评论及评论图片,我还用pyqt开发了个客户端 ...
最新文章
- 友情链接优化的技巧分享
- GridView控件添加鼠标移入移出时背景行变色的效果
- button theme
- 从零开始搭建spring-cloud(3) ----feign
- 猪和兔子的玻璃体给人用(仅仅是个人想法)
- Qt文档阅读笔记-写一个简单的单元测试
- php忘记密码啦怎么办,后台账号密码忘记了怎么办.
- 做好领导最喜欢的可视化报表,30岁依然能转行大数据分析师
- oracle11g win10版本,win10系统安装的oracle11g和cloud6.2 创建数据中心报错
- mac苹果电脑安装非app store软件无法安装的解决办法
- python平稳性检验程序_用 Python 检验时间序列的平稳性
- 从架构到平台, POWER 9处理器最全解读
- 软件工程师成长为架构师必备的十项技能
- java导出excel 图片_请教java导出多张图片到Excel问题!
- [C0] 人工智能大师访谈 by 吴恩达
- 李白关于鸿蒙的诗,名诗欣赏:李白《把酒问月》之--青天有月来几时
- 被迫营业:如何使用向日葵进行远程桌面控制(含MacOS)
- 程序猿也爱学英语,有图有真相!
- b站如何一次性把up主全部取消关注,让自己去学习
- 包载信使RNA(mRNA)的虫草多糖脂质体|冬虫夏草多糖脂质体包载小干扰RNA(siRNA)
热门文章
- linux电脑做笔记软件,知识管理工具, 自由格式数据库, 笔记软件以及个人信息管理...
- php怎么改标题,PHP – 如何更改包含header.php的页面标题?
- init tarray 太大_[NOIP 2001提高组T4]Car的旅行路线
- centos 离线安装mysql_CentOS6离线安装mysql-5.7.25
- matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc
- php关联数组和哈希表,php遍历哈希表及关联数组的实例代码
- rto净化效率计算公式_全面剖析 石油化工行业RTO蓄热式焚烧炉的优势要素
- java三大特性 继承_java基础(二)-----java的三大特性之继承
- mysql服务器的线程数查看方法_MySQL服务器线程数的查看方法详解
- 计算机科学导论(第一次阅读)