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生成器generator用法实例分析
Jun 04 Python
python连接字符串的方法小结
Jul 13 Python
Python中functools模块函数解析
Mar 12 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
解决python报错MemoryError的问题
Jun 26 Python
PyQt5实现简易电子词典
Jun 25 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
wxPython实现画图板
Aug 27 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
Python with语句用法原理详解
Jul 03 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 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 数组遍历顺序理解
2009/09/09 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
详解webpack性能优化——DLL
2017/10/20 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
Python中的类与类型示例详解
2019/07/10 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
酒吧员工的岗位职责
2013/11/26 职场文书
实用求职信范文分享
2013/12/25 职场文书
2015年社区工作总结
2015/04/08 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电