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.你需要下载抓包工具你登陆一下淘宝抓取你登录的时候携带的信息,自己定义字典把携带的数据放到里边
2.爬取的时候记得携带这些数据一起发过去
3.最好还是带着你浏览器的信息
你可以试一下翻页之后观察网址变化的值(爬取京东商品时候是页码加一),然后在你原来的代码加一个变量就好了
可以两种方式进行爬取1,获取你登入时候的cokies.2.找到商品信息那条js.3.直接selenium模块模拟登入
我就是不知道怎么改代码,可以写一下具体的代码吗?谢谢
@诗瑶1: 不是改代码那么简单了,要重写代码了,你的代码早过时了
@小小咸鱼YwY:哦哦, 这个代码是上课的时候老师的例子
@诗瑶1: 人家淘宝网页也会实时更新反爬,有些代码过段时间就不能用了,
@小小咸鱼YwY: 那我这个代码的基本框架过时了吗?
@诗瑶1: 你这个称不上框架把...........................
@小小咸鱼YwY: 说得也对,哈哈
@诗瑶1: 其实你用也行,只要在requests('url')的基础上加上你登入时候的cookies