【问题标题】:Importing a url; How do I only use data from half the page?导入网址;我如何只使用一半页面的数据?
【发布时间】:2019-02-25 18:01:36
【问题描述】:

我想从网站导入成绩单,但只分析其中一半的数据。 我已经导入了 URL,我想计算文本中唯一单词的总数,但仅来自抄本“The Rental of the Manor of Mayfield, 1545”的行。有谁知道我可以使用什么代码来做到这一点?我不知道如何从 URL 中计算单词,而只能从某个部分计算单词。 到目前为止,我已经写了:

import requests
source = 'http://www.myjacobfamily.com/historical%20manuscripts/mayfield%201.htm'
r = requests.get(source)
print(r.text)

【问题讨论】:

  • 我不明白你所说的“半页”是什么意思。能否请您详细说明

标签: python html url


【解决方案1】:

我会先说我非常很少有关于为什么和什么你正在尝试做的背景信息。我在下面包含了我认为您正在寻找的代码。但是,我建议您在提出更多问题之前查看https://stackoverflow.com/help/how-to-ask

import requests
import bs4

response = requests.get('http://www.myjacobfamily.com/historical%20manuscripts/mayfield%201.htm')
soup = bs4.BeautifulSoup(response.text, 'html.parser')
lines = soup.find_all('p')
story = []
record = False
for line in lines:
    if "The Rental of the Manor of Mayfield, 1545." in line.text:
        story.append(line.text)
        record = True
        continue
    if record is True and "---" not in line.text:
        story.append(line.text)
    elif record is True and "---" in line.text:
        break
print(story)

在这段代码中,我通过使用BeautifulSoup 模块解析<p></p> 标签之间的所有信息,从您发布的链接中提取一个故事(也许“半页”是什么意思?)。您可以使用 Internet 浏览器上的开发人员工具查看此信息。一旦所有lines 被加载,代码就会遍历它们并且直到遇到The Rental of the Manor of Mayfield, 1545. 时才开始录制。此时它将抓取每一行,直到到达包含“---”的一行(这似乎是他们在网站上描述故事的方式)。此时它会打破循环并打印故事。您可以使用以下命令将此列表连接成一个字符串:

"".join(story)

就我个人而言,我认为您尝试做的事情没有任何意义,因为将您想要的故事复制到文本文档中然后使用 Python 之类的东西处理该文本文档会非常容易。网络抓取绝对不是我解决这个问题的首选......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 2020-05-20
    • 2014-06-13
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多