Python爬虫实现抓取京东店铺信息及下载图片功能示例


Posted in Python onAugust 07, 2018

本文实例讲述了Python爬虫实现抓取京东店铺信息及下载图片功能。分享给大家供大家参考,具体如下:

这个是抓取信息的

from bs4 import BeautifulSoup
import requests
url = 'https://list.tmall.com/search_product.htm?q=%CB%AE%BA%F8+%C9%D5%CB%AE&type=p&vmarket=&spm=875.7931836%2FA.a2227oh.d100&from=mallfp..pc_1_searchbutton'
response = requests.get(url)                          #解析网页
soup = BeautifulSoup(response.text,'lxml')                   #.text将解析到的网页可读
storenames = soup.select('#J_ItemList > div > div > p.productTitle > a')    #选择出商店的信息
prices = soup.select('#J_ItemList > div > div > p.productPrice > em')     #选择出价格的信息
sales = soup.select('#J_ItemList > div > div > p.productStatus > span > em')  #选择出销售额的信息
for storename, price, sale in zip(storenames,prices,sales):
  storename = storename.get_text().strip()   #用get_text()方法筛选出标签中的文本信息,由于筛选结果有换行符\n所以用strip()将换行符去掉
  price = price.get_text()
  sale = sale.get_text()
  print('商店名:%-40s价格:%-40s销售额:%s'%(storename,price,sale))   #使打印出来的信息规范
  print('----------------------------------------------------------------------------------------------')

这个是下载图片的

from bs4 import BeautifulSoup
import requests
import urllib.request
url = 'https://list.tmall.com/search_product.htm?q=%CB%AE%BA%F8+%C9%D5%CB%AE&type=p&vmarket=&spm=875.7931836%2FA.a2227oh.d100&from=mallfp..pc_1_searchbutton'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
imgs = soup.select('#J_ItemList > div > div > div.productImg-wrap > a > img')
a = 1
for i in imgs:
  if(i.get('src')==None):
    break
  img = 'http:'+i.get('src') #这里废了好长的时间,原来网站必须要有http:的
  #print(img)
  urllib.request.urlretrieve(img,'%s.jpg'%a, None,)
  a = a+1

ps:

1.选择信息的时候用css

2.用get_text()方法筛选出标签中的文本信息

3.striplstriprstrip的用法:

Python中的strip用于去除字符串的首尾字符;同理,lstrip用于去除左边的字符;rstrip用于去除右边的字符。

这三个函数都可传入一个参数,指定要去除的首尾字符。

需要注意的是,传入的是一个字符数组,编译器去除两端所有相应的字符,直到没有匹配的字符,比如:

theString = 'saaaay yes no yaaaass'
print theString.strip('say')

theString依次被去除首尾在['s','a','y']数组内的字符,直到字符在不数组内。所以,输出的结果为:

yes no

比较简单吧,lstriprstrip原理是一样的。

注意:当没有传入参数时,是默认去除首尾空格和换行符的。

theString = 'saaaay yes no yaaaass'
print theString.strip('say')
print theString.strip('say ') #say后面有空格
print theString.lstrip('say')
print theString.rstrip('say')

运行结果:

yes no
es no
yes no yaaaass
saaaay yes no

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python3图片转换二进制存入mysql
Dec 06 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
python实现BackPropagation算法
Dec 14 Python
matplotlib设置legend图例代码示例
Dec 19 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
TensorFlow加载模型时出错的解决方式
Feb 06 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Python学习之time模块的基本使用
Jan 17 Python
Django添加favicon.ico图标的示例代码
Aug 07 #Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 #Python
Python装饰器模式定义与用法分析
Aug 06 #Python
Python实现的建造者模式示例
Aug 06 #Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 #Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 #Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 #Python
You might like
php中var_export与var_dump的区别分析
2010/08/21 PHP
10款实用的PHP开源工具
2015/10/23 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
详解vue-cli3使用
2018/08/14 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python获取邮件地址的方法
2015/07/10 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
Python中Yield的基本用法
2020/10/18 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
优秀员工推荐信
2014/05/10 职场文书
比赛口号大全
2014/06/10 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
装修活动策划方案
2014/08/27 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
高中物理教学反思
2016/02/19 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL