获取淘宝中想要搜索的商品信息
1、获取URL
1、分析URL
我觉得这个URL看着简单清晰,参数也不多,所以采用
第一页:
https://s.taobao.com/search?q=%E6%89%8B%E6%9C%BA%E5%A3%B3&bcoffset=6&ntoffset=6&p4ppushleft=1%2C48&s=0
第二页:
https://s.taobao.com/search?q=%E6%89%8B%E6%9C%BA%E5%A3%B3&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44
我们会发现bcoffset和ntoffset都等于6,而且是依次减3,s是依次乘44,这样规律就找到了,可以构造参数了
其他URL:https://s.taobao.com/search?initiative_id=tbindexz_20170306&ie=utf8&spm=a21bo.2017.201856-taobao-item.2&sourceId=tb.index&search_type=item&ssid=s5-e&commend=all&imgfile=&q=%E6%89%8B%E6%9C%BA&suggest=history_2&_input_charset=utf-8&wq=&suggest_query=&source=suggest
这个看着是不是参数很多,需要多次分析查看规律
2、构造参数
num = 6
number = 0
# 循环输出多少页,startpage, stoppage是手动输入的
for index in range(startpage, stoppage + 1):
url = 'https://s.taobao.com/search'
params = {
'q': search,
'bcoffset': num,
'ntoffset': num,
'p4ppushleft': '1,48',
's': number * 44
}
number += 1
num -= 3
3、发起请求
#设置请求头
headers = {
'user-agent': '填写你的user-agent值',
'''不足点:不能频繁访问,当淘宝识别到之后cookie会失效,
需要滑块验证码滑动,刷新网页重新将cookie填写进来
'''
'cookie': '你当时访问的URL时的cookie值'
}
# 发送请求
response = requests.get(url, headers=self.headers, params=params)
# 获取响应内容
text = response.text
4、获取信息
f12查看网页源代码,全局搜索g_page_config(所有信息都在里面),看能不能找到,如果不行,就先登录淘宝吧,有的话就可以通过正则进行匹配了
# 列举一条,其余信息同样方法
titles = re.findall('"raw_title":"(.*?)"', text)
温馨提示:
1、如果想获取到详情页的地址,当你复制粘贴到网页中会打不开,需要你认真仔细的进行发现,我这里就先不告诉你们了,很简单的
2、有些商品的付款人数没有内容,获取不到值,这很尴尬,会造成数据不匹配
5、保存
数据都获取到了,接下来就是保存了,excel、mysql、redis、mongodb任意选择吧,如果需要代码,我在上传