首页 新闻 会员 周边

Python爬虫爬取淘宝商品书包的名称价格

0
悬赏园豆:10 [已解决问题] 解决于 2019-11-12 20:01

import requests
import re
def gethtmltext(url):
try:
r=requests.get(url)
r.raise_for_status
r.encoding=r.apparent_encoding
return r.text
except:
return""
def getlist(goodlist,html):
goodname=re.findall(r'"raw_title":".?"',html)
goodprice=re.findall(r'"view_price":"[\d.]
"',html)
for i in range(len(goodname)):
price=eval(goodprice[i].split(":")[1])
name=eval(goodname[i].split(":")[1])
goodlist.append([name,price])

def printlist(goodlist):
count=0
plt="{0:^10}\t{1:^10}\t{2:^10}"
print(plt.format("编号","名称","价格"))
for g in goodlist:
count = count + 1
print(plt.format(count, g[0],g[1]))

def main():
url="https://s.taobao.com/search?q="
prl="书包"
glist=[]
html=gethtmltext(url+prl)
getlist(glist,html)
printlist(glist)

main()

此代码没有翻页处理,好像淘宝现在要登录才能爬取,网址变了,但是我不知道怎么改这个代码,求指导

诗瑶1的主页 诗瑶1 | 初学一级 | 园豆:175
提问于:2019-08-11 10:20
< >
分享
最佳答案
0

登录爬取?
1.你需要下载抓包工具你登陆一下淘宝抓取你登录的时候携带的信息,自己定义字典把携带的数据放到里边
2.爬取的时候记得携带这些数据一起发过去
3.最好还是带着你浏览器的信息

收获园豆:10
你说我记 | 初学一级 |园豆:39 | 2019-08-17 11:59
其他回答(2)
0

你可以试一下翻页之后观察网址变化的值(爬取京东商品时候是页码加一),然后在你原来的代码加一个变量就好了

Charzueus | 园豆:238 (菜鸟二级) | 2019-08-11 22:11
0

可以两种方式进行爬取1,获取你登入时候的cokies.2.找到商品信息那条js.3.直接selenium模块模拟登入

小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2019-08-12 08:31

我就是不知道怎么改代码,可以写一下具体的代码吗?谢谢

支持(0) 反对(0) 诗瑶1 | 园豆:175 (初学一级) | 2019-08-12 12:09

@诗瑶1: 不是改代码那么简单了,要重写代码了,你的代码早过时了

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2019-08-12 12:10

@小小咸鱼YwY:哦哦, 这个代码是上课的时候老师的例子

支持(0) 反对(0) 诗瑶1 | 园豆:175 (初学一级) | 2019-08-12 13:09

@诗瑶1: 人家淘宝网页也会实时更新反爬,有些代码过段时间就不能用了,

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2019-08-12 13:31

@小小咸鱼YwY: 那我这个代码的基本框架过时了吗?

支持(0) 反对(0) 诗瑶1 | 园豆:175 (初学一级) | 2019-08-12 13:45

@诗瑶1: 你这个称不上框架把...........................

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2019-08-12 13:58

@小小咸鱼YwY: 说得也对,哈哈

支持(0) 反对(0) 诗瑶1 | 园豆:175 (初学一级) | 2019-08-12 16:18

@诗瑶1: 其实你用也行,只要在requests('url')的基础上加上你登入时候的cookies

支持(0) 反对(0) 小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2019-08-12 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册