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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python验证码识别的示例代码
Sep 21 Python
Sublime开发python程序的示例代码
Jan 24 Python
Django中Model的使用方法教程
Mar 07 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
Python MNIST手写体识别详解与试练
Nov 07 Python
python运行脚本文件的三种方法实例
Jun 25 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
网络资源
2006/10/09 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
Python切片工具pillow用法示例
2018/03/30 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
Python post请求实现代码实例
2020/02/28 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
总经理司机岗位职责
2014/02/06 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
解除施工合同协议书
2014/10/17 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle