网站上有问题评论:json.decoder.JSONDecodeError错误:期望值:第1行第1列(字符0)

2024-10-01 15:41:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了json解码错误,不知道为什么我得到的新url不是预期的,而是登录网站。你知道吗

我试着从一个中国网站(微博)上搜集评论。我通过ChromeToolsforWebDeveloper找到了web的基本框架。它是一个json格式文件,结构清晰。你知道吗

import requests
import re
import codecs
import time
from bs4 import BeautifulSoup
import random

url2 = "https://m.weibo.cn/comments/hotflow?id=4384234225528313&mid=4384234225528313&max_id=138836201356688&max_id_type=0"
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
    }


def get_page(max_id, id_type):
        params = {
                'max_id': max_id,
                'max_id_type': id_type
                }

        try:
                r = requests.get(url2, params=params, headers=headers)
                rr = r.url
                print(rr)
                rrr = requests.get(rr)
                if rrr.status_code == 200:
                        return rrr.json()

        except requests.ConnectionError as e:
                print('error',e.args)


def parse_page(maxid):
        if maxid:
                items = maxid['data']
                item_max_id = {}
                item_max_id['max_id'] = items['max_id']
                item_max_id['max_id_type'] = items['max_id_type']
                return item_max_id

m_id = 0
id_type = 0

for a in range(1,30):

        maxid = get_page(m_id, id_type) #maxid=rrr.json()
        results = parse_page(maxid)
        time.sleep(2)
        m_id = results['max_id']
        id_type = results['max_id_type']

        for i in range(len(maxid['data']['data'])):
                data = maxid['data']['data'][i]['text']
                with codecs.open(r'/Users/apple/Desktop/suicide.txt', 'a', encoding='utf-8') as ff:

                        hanzi = ''.join(re.findall('[\u4e00-\u9fa5]',data)) 
                       ff.write(hanzi+'\n'*2)

weblink1

weblink2

Traceback (most recent call last):
    raise JSONDecodeError(Expecting value, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

以上是我得到的结果。我可以得到第一页的评论,但它表明我不能继续。 另一个问题是,应该有一个新的网址有类似的结构,原来的一个,这样我可以刮第二页的评论,但我只得到登录网址。你知道吗


Tags: importidjsondatagettypepage评论

热门问题