爬虫实战--使用Selenium模拟浏览器抓取淘宝商品美食信息
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq
import re browser = webdriver.Chrome()
wait = WebDriverWait(browser,10)
def search():
try:
browser.get("https://www.taobao.com")
input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#q')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#J_TSearchForm > div.search-button > button')))
input.send_keys('美食')
submit.click()
total = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.total')))
get_products()
return total.text
except TimeoutException:
return search() def next_page(page_number):
try:
input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > input')))
submit = wait.until(EC.element_to_be_clickable((By.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((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > ul > li.item.active > span'),str(page_number)))
get_products()
except TimeoutException:
next_page(page_number) def get_products():
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"#mainsrp-itemlist .items .item")))
html = browser.page_source
doc = pq(html)
items = doc('#mainsrp-itemlist .items .item').items()
for item in items:
product = {
'image':item.find('.pic .img').attr('src'),
'price':item.find('.price').text(),
'deal':item.find('.deal-cnt').text()[:-3],
'title':item.find('.title').text(),
'shop':item.find('.shop').text(),
'location':item.find('.location').text()
}
print(product)
def main():
total = search()
total = int(re.compile('(\d+)').search(total).group(1))
for i in range(2,total + 1):
next_page(i) if __name__ == "__main__":
main()
{'title': '坚果小吃零食组合装好吃的\n美食\n休闲食品孕妇成人款散装混合一箱', 'deal': '', 'image': '//g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i4/123456239/TB2CqDhqgZC2uNjSZFnXXaxZpXa_!!0-saturn_solar.jpg_180x180.jpg', 'shop': '果木时光旗舰店', 'price': '¥\n59.80', 'location': '江苏 泰州'}
{'title': '三只松鼠 肉松饼456g传统糕点早餐点心办公室\n美食', 'deal': '', 'image': '//g-search2.alicdn.com/img/bao/uploaded/i4/i3/725677994/TB2RFQ8cZbpK1RjSZFyXXX_qFXa_!!725677994-0-sm.jpg_180x180.jpg', 'shop': '天猫超市', 'price': '¥\n26.90', 'location': '上海'}
{'title': '轩妈家蛋黄酥6枚装 红豆味雪媚娘麻薯网红糕点点心\n美食\n早餐零食', 'deal': '', 'image': '//g-search2.alicdn.com/img/bao/uploaded/i4/i4/3282604381/O1CN011iEXcnPKoV6ODRN_!!3282604381.jpg_180x180.jpg', 'shop': '轩妈食品旗舰店', 'price': '¥\n45.00', 'location': '广西 南宁'}
{'title': '【百草味零食大礼包】休闲网红小吃一箱组合整箱超大混装\n美食\n批发', 'deal': '', 'image': '//g-search3.alicdn.com/img/bao/uploaded/i4/i3/628189716/TB2w6WHdMHqK1RjSZFgXXa7JXXa_!!628189716-0-item_pic.jpg_180x180.jpg', 'shop': '百草味旗舰店', 'price': '¥\n58.90', 'location': '浙江 杭州'}
{'title': '桂花鸭南京盐水鸭1000g正宗江苏特产中秋送礼\n美食\n板鸭咸水鸭熟食', 'deal': '', 'image': '//g-search3.alicdn.com/img/bao/uploaded/i4/i2/2095703462/O1CN011bRddgG0RUsR8tR_!!2095703462.jpg_180x180.jpg', 'shop': '桂花鸭旗舰店', 'price': '¥\n52.00', 'location': '江苏 南京'}
{'title': '良品铺子零食大礼包抖音网红小吃吃货一箱组合整箱混装\n美食\n批发', 'deal': '', 'image': '//g-search3.alicdn.com/img/bao/uploaded/i4/i1/619123122/TB1ODM4ev5TBuNjSspcXXbnGFXa_!!0-item_pic.jpg_180x180.jpg', 'shop': '良品铺子旗舰店', 'price': '¥\n59.90', 'location': '湖北 武汉'}
{'title': '轩妈家蛋黄酥2盒装 红豆雪媚娘麻薯糕点点心\n美食\n早餐网红零食', 'deal': '', 'image': '//g-search2.alicdn.com/img/bao/uploaded/i4/i2/3282604381/O1CN011iEXcnzrOwKPzVy_!!3282604381.jpg_180x180.jpg', 'shop': '轩妈食品旗舰店', 'price': '¥\n89.00', 'location': '广西 南宁'}
{'title': '轩妈家蛋黄酥55g*6枚2盒手工网红糕点\n美食\n早餐零食小吃雪媚娘麻薯', 'deal': '', 'image': '//g-search3.alicdn.com/img/bao/uploaded/i4/i1/681185851/O1CN011t5nqIzARzgEZZX-681185851.jpg_180x180.jpg', 'shop': '猫诚旗舰店', 'price': '¥\n89.00', 'location': '广西 南宁'}
{'title': '南京特产金陵夫子庙小吃零食传统糕点\n美食\n6盒大礼包送礼品袋', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '鹊菓食品旗舰店', 'price': '¥\n59.90', 'location': '江苏 南京'}
{'title': '其妙麻薯干吃汤圆整箱面包早餐糯米糍驴打滚糍粑网红小吃零食\n美食', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '其妙旗舰店', 'price': '¥\n19.90', 'location': '福建 厦门'}
{'title': '脆皮烤肉五花肉 云南特产\n美食\n真空熟食香辣猪肉干非红烧肉送蘸料', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '傣小妹', 'price': '¥\n27.80', 'location': '云南 西双版纳'}
{'title': '20枚玫瑰鲜花饼云南特产玫瑰花饼胡先生正宗糕点早餐零食\n美食\n1kg', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': 'mrhu旗舰店', 'price': '¥\n39.90', 'location': '云南 昆明'}
{'title': '轩妈家蛋黄酥55g*6枚/盒手工雪媚娘麻薯糕点\n美食\n早餐网红零食小吃', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '猫诚旗舰店', 'price': '¥\n45.00', 'location': '广西 南宁'}
{'title': '切糕小吃新疆特产纯手工正宗传统散装坚果点心玛仁糖零食孕妇\n美食', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': 'yuxi钰玺', 'price': '¥\n39.90', 'location': '新疆 乌鲁木齐'}
{'title': '其妙麻薯干吃汤圆整箱面包早餐糯米糍驴打滚糍粑网红小吃零食\n美食', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '香客食品专营店', 'price': '¥\n19.80', 'location': '福建 厦门'}
{'title': '云南脆皮烤肉五花肉猪\n美食\n刘立民休闲食品熟食成人款即食小吃真空', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '小牛的烤肉', 'price': '¥\n30.00', 'location': '云南 西双版纳'}
{'title': '南萃坊流心蛋黄饼20个800克传统糕点办公室网红零食小吃\n美食\n整箱', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '南萃坊旗舰店', 'price': '¥\n32.80', 'location': '浙江 杭州'}
{'title': '梅菜扣肉饼黄山烧饼梅干菜手工薄脆饼好吃的\n美食\n网红零食小吃16个', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': 'tb361290_55', 'price': '¥\n29.80', 'location': '安徽 黄山'}
{'title': '美食\n作家王刚自贡特色冷吃牛肉 105克-205克', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': 'wg王刚1590', 'price': '¥\n49.90', 'location': '四川 自贡'}
{'title': '鲜花饼云南特产\n美食\n手工玫瑰饼五味糕点心零食1000g中秋礼盒送礼', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '花香随鲜花饼店', 'price': '¥\n34.80', 'location': '云南 昆明'}
{'title': '北方无糖零食曲阳缸炉烧饼特产正宗河北\n美食\n小吃芝麻饼传统纯手工', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '付太安', 'price': '¥\n32.50', 'location': '河北 保定'}
{'title': '新品【三只松鼠_黄金肉松饼1.25kg/整箱】早餐面包食品糕点心\n美食', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '三只松鼠旗舰店', 'price': '¥\n42.90', 'location': '安徽 芜湖'}
{'title': '爱福龙须酥正宗手工糕点小吃点心龙须糖\n美食\n好吃的怀旧零食特产', 'deal': '', 'image': '//g.alicdn.com/s.gif', 'shop': '海艳食品专营店', 'price': '¥\n29.90', 'location': '湖北 随州'}
打印后的结果为:
爬虫实战--使用Selenium模拟浏览器抓取淘宝商品美食信息的更多相关文章
- 3.使用Selenium模拟浏览器抓取淘宝商品美食信息
# 使用selenium+phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏览器翻页,并 ...
- Python爬虫学习==>第十二章:使用 Selenium 模拟浏览器抓取淘宝商品美食信息
学习目的: selenium目前版本已经到了3代目,你想加薪,就跟面试官扯这个,你赢了,工资就到位了,加上一个脚本的应用,结局你懂的 正式步骤 需求背景:抓取淘宝美食 Step1:流程分析 搜索关键字 ...
- 16-使用Selenium模拟浏览器抓取淘宝商品美食信息
淘宝由于含有很多请求参数和加密参数,如果直接分析ajax会非常繁琐,selenium自动化测试工具可以驱动浏览器自动完成一些操作,如模拟点击.输入.下拉等,这样我们只需要关心操作而不需要关心后台发生了 ...
- 使用Selenium模拟浏览器抓取淘宝商品美食信息
代码: import re from selenium import webdriver from selenium.webdriver.common.by import By from seleni ...
- 使用selenium模拟浏览器抓取淘宝信息
通过Selenium模拟浏览器抓取淘宝商品美食信息,并存储到MongoDB数据库中. from selenium import webdriver from selenium.common.excep ...
- Selenium模拟浏览器抓取淘宝美食信息
前言: 无意中在网上发现了静觅大神(崔老师),又无意中发现自己硬盘里有静觅大神录制的视频,于是乎看了其中一个,可以说是非常牛逼了,让我这个用urllib,requests用了那么久的小白,体会到sel ...
- Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息
#使用selenium+Carome/phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏 ...
- 关于爬虫的日常复习(10)—— 实战:使用selenium模拟浏览器爬取淘宝美食
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
随机推荐
- 发布vue插件到npm上
总体分为2个步骤 一,先写好插件 二,发布到npm上面 一,写vue插件 vue有一个开放的方法install,在vue插件需要写在这个方法里面,在vue官网,里面说的很清楚,这个方法里面可以是全局方 ...
- PHP 操作redis 详细讲解 转的 http://www.cnblogs.com/jackluo/p/3412670.html
phpredis是redis的php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github. ...
- C语言添加宏开关
原文地址:http://blog.csdn.net/cp1300/article/details/7773239 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是 ...
- 剖析Vue原理&实现双向绑定MVVM-1
本文能帮你做什么?1.了解vue的双向数据绑定原理以及核心代码模块2.缓解好奇心的同时了解如何实现双向绑定为了便于说明原理与实现,本文相关代码主要摘自vue源码, 并进行了简化改造,相对较简陋,并未考 ...
- angular 数据内容有重复时不显示问题
<body ng-app="app"> <div ng-controller="myctl"> <ul> <li ng ...
- UVA11625_Lines of Containers
题意很简单,给你一个n*m的矩阵,现在问你这个矩阵能否变为标准矩阵(即数字从小到大),如果能最少需要几步呢? 其实是个赤果果的水题.记得暑假安叔也出过一个类似的题目,那个好像是在codeforces上 ...
- 【loj6038】「雅礼集训 2017 Day5」远行 树的直径+并查集+LCT
题目描述 给你 $n$ 个点,支持 $m$ 次操作,每次为以下两种:连一条边,保证连完后是一棵树/森林:询问一个点能到达的最远的点与该点的距离.强制在线. $n\le 3\times 10^5$ ,$ ...
- 题解 P1888 【三角函数】
堆排序万岁! 小金羊又来水题了 #include <iostream> #include <queue> using namespace std; priority_queue ...
- [poi2011]bzoj 2277 —— strongbox·[洛谷3518]
·问题描述· 有一个密码箱,0到n-1中的某些数是它的密码.且满足:如果a和b都是它的密码,那么(a+b)%n也是它的密码.某人试了k次密码,前k-1次都失败了,最后一次成功. 问:该密码箱最多有多少 ...
- 洛谷 P3376 【模板】网络最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...