如何使用JSON解析网站并保存到文本文件?

时间:2020-04-27 13:52:51

标签: python json parsing

我正在尝试构建一个功能,该功能可以通过删除标签并将文本结果保存到.txt文件中来抓取网站并解析其内容。该函数必须传入标头以避免403错误,并且还带回整个页面的内容(我使用Google作为代理,但其目的是要使该网站成为任何可能导致403错误的网站)。我正在生成一个错误,该错误显示为“ TypeError:无法将str连接到字节”

from urllib.request import urlopen
import urllib.request
import json

def GetData(url):
    user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
    headers = { 'User-Agent' : user_agent }
    response = urllib.request.Request(url, headers)
    with urllib.request.urlopen(response) as res:
        clean = re.sub(r'<.*?>', '', res)
        data = clean.read().decode("utf-8")


    return json.loads(data)

url = ("https://google.com")
#print(GetData(url))
fileName = "Data.txt"
myFile = open(fileName, 'w')
myFile.write(GetData(url))

如果有人能指出正确的方向,我将非常感激。

这是回溯错误: 追溯(最近一次通话): 在第18行的文件“ JSON.py”中 打印(GetData(URL)) GetData中第9行的文件“ JSON.py” 使用urllib.request.urlopen(response)作为res: urlopen中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,第222行 返回opener.open(URL,数据,超时) 打开的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,第525行 响应= self._open(要求,数据) _open中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,第543行 '_open',要求) _call_chain中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,第503行 结果= func(* args) 文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,行1362,位于https_open context = self._context,check_hostname = self._check_hostname) 在do_open中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py”,行1319 encode_chunked = req.has_header('Transfer-encoding')) 请求中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”,行1252 self._send_request(方法,URL,正文,标头,encode_chunked) _send_request中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”,行1298 self.endheaders(body,encode_chunked = encode_chunked) 文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”,行1247,在标题中 self._send_output(消息正文,encode_chunked = encode_chunked) _send_output中的文件“ C:\ Users \ andre \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py”,行1064 + b'\ r \ n' TypeError:无法将str连接为字节

0 个答案:

没有答案
相关问题