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 相关文章推荐
详解Python的Flask框架中的signals信号机制
Jun 13 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
python 切换root 执行命令的方法
Jan 19 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
对Python中画图时候的线类型详解
Jul 07 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
Python3如何判断三角形的类型
Apr 12 Python
python和node.js生成当前时间戳的示例
Sep 29 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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 !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
javascript闭包入门示例
2014/04/30 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
javascript事件模型介绍
2016/05/31 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
axios学习教程全攻略
2017/03/26 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python读取LMDB中图像的方法
2018/07/02 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Django重设Admin密码过程解析
2020/02/10 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
精彩广告词大全
2014/03/19 职场文书
万里长城导游词
2015/01/30 职场文书
中学生自我评价范文
2015/03/03 职场文书
公司表扬信格式
2015/05/04 职场文书
初二数学教学反思
2016/02/17 职场文书