请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

3回答

NavCat 2018-11-05 10:19:28

淘宝双11做了较大调整,不按接口返回了,使用正则爬去代码参考

import requests
import re
import json

def spider_tb(sn ,book_list=[]):
	url = 'https://s.taobao.com/search?q={0}'.format(sn)
	#获取html内容
	text = requests.get(url).text

	# 使用正则表达式找到json对象
	p = re.compile(r'g_page_config = (\{.+\});\s*', re.M)
	rest = p.search(text)
	if rest:
		print(rest.group(1))
		data = json.loads(rest.group(1))
		bk_list = data['mods']['itemlist']['data']['auctions']

		print (len (bk_list))
		for bk in bk_list:
			#标题
			title = bk["raw_title"]
			print(title)
			#价格
			price = bk["view_price"]
			print(price)
			#购买链接
			link = bk["detail_url"]
			print(link)
			#商家
			store = bk["nick"]
			print(store)
			book_list.append({ 'title' : title, 'price' : price, 'link' : link, 'store' : store })
			print ('{title}:{price}:{link}:{store}'.format( title = title, price = price, link = link, store = store )) 



if __name__ == '__main__':
	spider_tb('9787115428028')


1 回复 有任何疑惑可以回复我~
  • 提问者 Samuel10 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2018-11-05 11:12:25
提问者 Samuel10 2018-11-06 22:15:21

https://img1.sycdn.imooc.com//szimg/5be1a1e2000114c011370552.jpg

老师代码运行不成功是什么原因呢

0 回复 有任何疑惑可以回复我~
NavCat 2018-11-04 15:29:35

淘宝的更改了实现方式,不通过接口来返回数据了。你可以查看页面源代码,数据在页面上的js中

0 回复 有任何疑惑可以回复我~
  • 提问者 Samuel10 #1
    老师,我怎么获取js代码呢
    回复 有任何疑惑可以回复我~ 2018-11-04 15:48:34
  • 提问者 Samuel10 #2
    老师,我怎么获取js代码呢
    回复 有任何疑惑可以回复我~ 2018-11-04 15:57:11
  • NavCat 回复 提问者 Samuel10 #3
    跟爬取京东的一样,可以用正则表达式,或者xpath都可以的
    回复 有任何疑惑可以回复我~ 2018-11-04 16:03:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信