【问题标题】:Error trying to save scraped web data to a text file尝试将抓取的 Web 数据保存到文本文件时出错
【发布时间】:2022-01-17 05:25:28
【问题描述】:

我是新手,最近开始使用 Python。我正在尝试将检索到的 Twitter 关注者从网络保存到文本文件,但它不起作用。

这是我的代码:

for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
    print(twusernames.get_property('href'))
    file = open('links.txt', 'w')
    file.write(twusernames.get_property('href'))
    file.close()

我做错了什么? :( 感谢您的帮助。

【问题讨论】:

  • 欢迎来到 Stack Overflow!您可能想查看How do I ask a good question?。在这种情况下,这将有助于解释究竟是什么不起作用(错误消息等)
  • 谢谢。我会的!

标签: python selenium twitter file-writing


【解决方案1】:

这应该可行:

with open('links.txt', 'w') as file
for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
    content = twusernames.get_property('href')
    print(content)
    file.write(content)
file.close()

【讨论】:

  • 非常感谢。它奏效了。
  • 如果是,请接受我的回答。
  • 完成。这三个都很有帮助,很难选择一个,哈哈。我希望我能投票。 :)
  • 感谢您选择我 ? 我已经为您投票了,因此您也可以更快地投票
【解决方案2】:

试试这个。

with open('links.txt', 'w') as file
    file.write(twusernames.get_property('href'))
    file.close()

【讨论】:

  • 谢谢。我得到了解决方案。
【解决方案3】:

get_attribute()

get_attribute() 获取元素的给定属性或属性。此方法首先尝试返回具有给定名称的属性的值。如果具有该名称的属性不存在,则它返回具有相同名称的属性的值。如果没有具有该名称的属性,则返回 None。被认为是真实的值,即等于“真”或“假”,作为布尔值返回。所有其他非None 值都作为字符串返回。对于不存在的属性或属性,返回None。要获取属性或属性的确切值,您还可以使用get_dom_attribute()get_property() 方法。

此外,一旦您打开file_handle,您需要将其关闭。但是,作为 I/O 操作的文件操作必须尽可能少。因此,您优化的代码块将是:

  • 使用get_attribute()

    file = open("links.txt", "w")
    for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
        file.write(twusernames.get_attribute("href") + "\n")
    file.close()
    
  • 使用get_property()

    file = open("links.txt", "w")
    for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
        file.write(twusernames.get_property("href") + "\n")
    file.close()
    
  • 使用get_dom_attribute()

    file = open("links.txt", "w")
    for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
        file.write(twusernames.get_dom_attribute("href") + "\n")
    file.close()
    

【讨论】:

  • 非常感谢您的详细回答。这有助于我理解从不同的角度看待它。
猜你喜欢
  • 1970-01-01
  • 2017-04-15
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 2017-05-01
  • 2020-11-04
  • 2020-10-22
相关资源
最近更新 更多