飞道的博客

爬虫(101)爬点重口味的

340人阅读  评论(0)

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。

然后小弟冥思苦想,得干一点有趣的事情

python 爬虫库安装

https://s.taobao.com/api?_ksTS=1540176287763_226&callback=jsonp227&ajax=true&m=customized&sourceId=tb.index&_input_charset=utf-8&bcoffset=-1&commend=all&suggest=history_1&source=suggest&search_type=item&ssid=s5-e&suggest_query=&spm=a21bo.2017.201856-taobao-item.2&q=内衣女&s=36&initiative_id=tbindexz_20170306&imgfile=&wq=&ie=utf8&rn=9e6055e3af9ce03b743aa131279aacfd

结果简化为

上车了

根据我们的火眼金睛,对奶罩各种信息的分析,代码应该这样撸:


   
  1. import requests
  2. import json
  3. url = "https://s.taobao.com/api?callback=jsonp227&m=customized&q=内衣女&s=36"
  4. r = requests.get(url)
  5. response = r.text
  6. # 截取成标准的JSON格式
  7. # 由于Ajax返回的数据是字符串格式的饿,在返回的值jsonp227(XXX)中
  8. # XXX部分是JSON格式数据,因此先用字符串split()截取XXX部分,
  9. #然后将XXX部分由字符串格式转成JSON格式的数据读取
  10. response = response.split( '(')[ 1].split( ')')[ 0]
  11. # 读取JSON
  12. response_dict = json.loads(response)
  13. # 定位到商品信息列表
  14. response_auctions_info = response_dict[ 'API.CustomizedApi'][ 'itemlist'][ 'auctions']

再爬他个 88 遍


   
  1. for p in range( 88):
  2. url = "https://s.taobao.com/api?callback=jsonp227&m=customized&q=内衣女&s=%s" % (p)
  3. r = requests.get(url)
  4. # 获取响应信息字符串
  5. response = r.text
  6. # 转换成JSON格式
  7. response = response.split( '(')[ 1].split( ')')[ 0]
  8. # 加载数据
  9. response_dict = json.loads(response)
  10. # 商品信息
  11. response_auctions_info = response_dict[ 'API.CustomizedApi'][ 'itemlist'][ 'auctions']

我再加一层,爬取内衣


   
  1. for k in [ '内衣女', '内衣']:
  2. for p in range( 88):
  3. url = "https://s.taobao.com/api?callback=jsonp227&m=customized&q=%s&s=%s" % (k,p)
  4. r = requests.get(url)
  5. response = r.text
  6. response = response.split( '(')[ 1].split( ')')[ 0]
  7. response_dict = json.loads(response)
  8. # 商品信息
  9. response_auctions_info = response_dict[ 'API.CustomizedApi'][ 'itemlist'][ 'auctions']

最后就是数据存储


   
  1. def get_auctions_info(response_auctions_info,file_name):
  2. with open(file_name, 'a',newline= '') as csvfile:
  3. # 生成CSV对象,用于写入CSV文件
  4. writer = csv.writer(csvfile)
  5. for i in response_auctions_info:
  6. # 判断是否数据已经记录
  7. if str(i['raw_title ']) not in auctions_distinct:
  8. # 写入数据
  9. # 分别是商品信息列表和CSV文件路径。
  10. # 但该文件并没有对CSV设置表头,所以在开始获取数据之前。
  11. # 应该生成对应CSV文件,并设定其表头
  12. writer.writerrow([i['raw_title '],i['view_price '],i['view_sales '],i['nick '],i['item_loc ']])
  13. auctions_distinct.append(str(i['raw_title ']))
  14. csvfile.close()

哇,好辛苦啊,撸的这么辛苦,希望各位尽情享受吧 。最后贴出爬取内容信息如下:



转载:https://blog.csdn.net/qq_36772866/article/details/105463280
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场