爬虫中json格式问题求助
今天写一个爬虫小程序,碰到的网站返回值是一组json数据,可是怎么都解析不出来。问一下大佬们错在哪里呢?我的部分代码如下:
response = requests.post(url,headers,data)
result = response.json()
print(response.status_code,'响应成功')
print(result)
报错是这样的:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
通过抓包工具看返回值确实是一组json数据,头疼。。。。 本帖最后由 1q23w31 于 2020-8-30 18:38 编辑
发完整代码看看,这样看只能看出你得到的不是json类型 1q23w31 发表于 2020-8-30 18:36
发完整代码看看,这样看只能看出你得到的不是json类型
import requests
from lxml import etree
import json
# music_name = input("请输入想要下载的名称:")
url = 'http://www.eggvod.cn/music/'
data = {
'input': '青花瓷',
'filter': 'name',
'type': 'netease',
'page': '1'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36',
}
response = requests.post(url,headers,data)
result = response.json()
print(response.status_code,'响应成功')
print(result)
一个爬第三方音乐下载网站的小爬虫 本帖最后由 1q23w31 于 2020-8-30 18:46 编辑
狗宁 发表于 2020-8-30 18:39
经验证,得到的确实不是json,被反爬了,应该是请求头的问题 可是通过谷歌的工具看确实是json数据,要是被反爬的话 请问一下有什么解决办法吗? 狗宁 发表于 2020-8-30 18:46
可是通过谷歌的工具看确实是json数据,要是被反爬的话 请问一下有什么解决办法吗?
import requests
from lxml import etree
import json
# music_name = input("请输入想要下载的名称:")
url = 'http://www.eggvod.cn/music/'
data = {
'input': '青花瓷',
'filter': 'name',
'type': 'netease',
'page': '1'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36',
'Host': 'www.eggvod.cn',
'Origin': 'http://www.eggvod.cn',
'Referer': 'http://www.eggvod.cn/music/?name=%E9%9D%92%E8%8A%B1%E7%93%B7&type=netease',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'X-Requested-With': 'XMLHttpRequest'
}
response = requests.post(url,data,headers=headers)
result = response.json()
print(response.status_code,'响应成功')
print(result)
一个爬第三方音乐下载网站的小爬虫
已改好 1q23w31 发表于 2020-8-30 19:02
已改好
谢谢大佬 1q23w31 发表于 2020-8-30 19:02
已改好
为什么改了headers里面这些,就能读取了? 疾风怪盗 发表于 2020-8-30 20:35
为什么改了headers里面这些,就能读取了?
网站通过headers中的字段来判断你是否为爬虫,常见的反爬措施 1q23w31 发表于 2020-8-30 20:42
网站通过headers中的字段来判断你是否为爬虫,常见的反爬措施
所以?多加几个字段?
还是有哪个字段是特殊的? 疾风怪盗 发表于 2020-8-30 20:44
所以?多加几个字段?
还是有哪个字段是特殊的?
这个加什么字段,只能尝试,网站规定的,一般来说 refer host x-requests-with origin是常用的,但不排除有其他字段 1q23w31 发表于 2020-8-30 20:52
这个加什么字段,只能尝试,网站规定的,一般来说 refer host x-requests-with origin是常用的,但不排除 ...
好的,谢谢解答
页:
[1]