python爬取淘宝数据遇见的坑

本文讲述了作者使用Python爬取淘宝数据时遇到的困难,包括JSONP格式数据、API接口限制以及动态加载内容的问题。作者尝试理解JSONP、解析网页源代码以及应对访问限制,尽管过程中遭遇挫折,但并未放弃,展现了爬虫学习过程中的探索精神。
摘要由CSDN通过智能技术生成

来说说我用python爬取淘宝数据遇见的坑

学习python 一年了,总想着找个大网站来练练手,于是乎,我就把眼光放在了马云爸爸的知名大网站——淘宝。可能也是我自己作死的关系,导致淘宝不让我访问了,不但出现滑块验证码,验证码即使通过了也依然不让我访问,莫名想哭怎么办 ,呜哇~~~

下面就来讲讲我爬淘宝遇到的坑们

一、首先打开了淘宝,想爬商品的基本信息,但是不想爬详情页,就想着在搜索页找找看能不能爬,然后还真的有诶,火狐浏览器查看元素 ,刷新一下,就能找到一个json类型的响应,但是打开请求网址 ,却显示这个

然后看看原始数据,好吧,确实不是正确的json格式的数据,那我试着请求请求,看能不能得到里面的信息,结果显而易见,当然不行,不行怎么办呢,当时我看到了JSONP这个东西

然后就在想JSONP是个什么 ,还有回调是个啥,此时就得靠我们的好老师——百度啦,然后度老师是这么解释的 :

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

我在想这样是不是和js渲染有关呢?可是那么多js文件到底是哪个呢?怪我自己才疏学浅,到这我就进行不下去了,然而我发现并不是这个问题阻挡了我,而是API,原来我发现的这个请求网址是这个样子滴

爬取淘宝数据,你可以使用 Python 中的 requests 和 BeautifulSoup 库。但是需要注意的是,淘宝有反爬虫机制,需要使用一些技巧才能成功爬取数据。 以下是一个简单的示例代码,可以爬取某个关键词在淘宝的搜索结果: ``` import requests from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} def get_product_list(keyword, page): url = f'https://s.taobao.com/search?q={keyword}&s={page*44}' response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') product_list = [] for item in soup.find_all('div', {'class': 'item J_MouserOnverReq '}): product = {} product['title'] = item.find('a', {'class': 'title'}).text.strip() product['price'] = item.find('div', {'class': 'price'}).text.strip() product['shop'] = item.find('div', {'class': 'shop'}).text.strip() product_list.append(product) return product_list if __name__ == '__main__': keyword = '手机' page = 0 product_list = get_product_list(keyword, page) print(product_list) ``` 在这个示例中,我们使用了 requests 库发送 HTTP 请求,并设置了一个伪装的 User-Agent,模拟浏览器访问网页。然后使用 BeautifulSoup 库解析网页源代码,提取需要的商品信息。最后,返回一个商品信息的列表。 需要注意的是,淘宝对于反爬虫有很多限制,例如需要使用 cookies 和 referer 等信息,以及对访问频率进行限制等。因此,如果需要爬取更多数据,可能需要使用更复杂的技术,例如使用代理 IP 和分布式爬虫等。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值