【问题标题】:Saving website html content as text file on local disk error将网站 html 内容保存为本地磁盘上的文本文件错误
【发布时间】:2021-01-02 20:07:05
【问题描述】:

state_urls 是字典,其中 state 是所有美国州名作为键,url 是有关它们的信息的 url。以下代码的要点是:对于字典中的每个密钥对,以状态名称保存一个文本文件,并使其包含该状态密钥的链接的 html 内容。没有 '.content' 它可以正常工作,但是从页面返回的所有 html 比我需要的要多得多,但是一旦添加 .content 错误是 AttributeError: 'bytes' object has no attribute 'text'

for state, url in state_urls.items():

r = requests.get(url).content
with open(state_dir + state + '.txt', 'w') as file:
    file.write(r.text)
    
    sleep(2) 

【问题讨论】:

  • 使用 BeautifulSoup 解析获得有用的 html,我遇到了同样的问题,这对我有用

标签: python html web-scraping save disk


【解决方案1】:

AttributeError: 'bytes' 对象没有属性 'text'

看看你在变量r 中有什么——如果你使用requests.get(url),那么它包含Response 对象。如果您使用requests.get(url).content,它将是来自Response 对象的content 属性,它是您下载的网页的文本(或更准确地说是bytes)内容。

您正在尝试使用变量r 再次低几行:file.write(r.text)。如果变量包含Response 对象,您可以这样做。但是,如果您将.content 属性(即bytes)存储在那里,则它没有.text 属性。这应该工作

r = requests.get(url) # dont use content
with open(state_dir + state + '.txt', 'w') as file:
    file.write(r.text) # r is Response, you can get its .text
    
    sleep(2) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多