小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。
然后小弟冥思苦想,得干一点有趣的事情
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
结果简化为
上车了
根据我们的火眼金睛,对奶罩各种信息的分析,代码应该这样撸:
-
import requests
-
import json
-
url =
"https://s.taobao.com/api?callback=jsonp227&m=customized&q=内衣女&s=36"
-
r = requests.get(url)
-
response = r.text
-
# 截取成标准的JSON格式
-
# 由于Ajax返回的数据是字符串格式的饿,在返回的值jsonp227(XXX)中
-
# XXX部分是JSON格式数据,因此先用字符串split()截取XXX部分,
-
#然后将XXX部分由字符串格式转成JSON格式的数据读取
-
response = response.split(
'(')[
1].split(
')')[
0]
-
# 读取JSON
-
response_dict = json.loads(response)
-
# 定位到商品信息列表
-
response_auctions_info = response_dict[
'API.CustomizedApi'][
'itemlist'][
'auctions']
再爬他个 88 遍
-
for p in
range(
88):
-
url =
"https://s.taobao.com/api?callback=jsonp227&m=customized&q=内衣女&s=%s" % (p)
-
r = requests.get(url)
-
# 获取响应信息字符串
-
response = r.text
-
# 转换成JSON格式
-
response = response.split(
'(')[
1].split(
')')[
0]
-
# 加载数据
-
response_dict = json.loads(response)
-
# 商品信息
-
response_auctions_info = response_dict[
'API.CustomizedApi'][
'itemlist'][
'auctions']
我再加一层,爬取内衣
-
for k in [
'内衣女',
'内衣']:
-
for p in
range(
88):
-
url =
"https://s.taobao.com/api?callback=jsonp227&m=customized&q=%s&s=%s" % (k,p)
-
r = requests.get(url)
-
response = r.text
-
response = response.split(
'(')[
1].split(
')')[
0]
-
response_dict = json.loads(response)
-
# 商品信息
-
response_auctions_info = response_dict[
'API.CustomizedApi'][
'itemlist'][
'auctions']
最后就是数据存储
-
def get_auctions_info(response_auctions_info,file_name):
-
with open(file_name,
'a',newline=
'') as csvfile:
-
# 生成CSV对象,用于写入CSV文件
-
writer = csv.writer(csvfile)
-
for i in response_auctions_info:
-
# 判断是否数据已经记录
-
if str(i['raw_title
']) not in auctions_distinct:
-
# 写入数据
-
# 分别是商品信息列表和CSV文件路径。
-
# 但该文件并没有对CSV设置表头,所以在开始获取数据之前。
-
# 应该生成对应CSV文件,并设定其表头
-
writer.writerrow([i['raw_title
'],i['view_price
'],i['view_sales
'],i['nick
'],i['item_loc
']])
-
-
auctions_distinct.append(str(i['raw_title
']))
-
csvfile.close()
哇,好辛苦啊,撸的这么辛苦,希望各位尽情享受吧 。最后贴出爬取内容信息如下:
转载:https://blog.csdn.net/qq_36772866/article/details/105463280
查看评论