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.strip,lstrip,rstrip的用法:

Python中的strip用于去除字符串的首尾字符;同理,lstrip用于去除左边的字符;rstrip用于去除右边的字符。
这三个函数都可传入一个参数,指定要去除的首尾字符。
需要注意的是,传入的是一个字符数组,编译器去除两端所有相应的字符,直到没有匹配的字符,比如:
[python]
theString = 'saaaay yes no yaaaass'  
print theString.strip('say')  
theString依次被去除首尾在['s','a','y']数组内的字符,直到字符在不数组内。所以,输出的结果为:
yes no
比较简单吧,lstrip和rstrip原理是一样的。
注意:当没有传入参数时,是默认去除首尾空格和换行符的。
[python] 
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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值