【问题标题】:Parsing "Further reading" with selenium, python用 selenium、python 解析“进一步阅读”
【发布时间】:2020-03-12 05:05:41
【问题描述】:

我需要从维基百科的进一步阅读中解析文本。 我的代码可以通过输入请求打开“谷歌”,例如“比尔盖茨”,然后它可以找到维基百科页面的 url。现在我需要从进一步阅读中解析文本,但我不知道如何。 这是代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

URL = "https://www.google.com/"
adress = input()  #input request, example: Bill Gates

def main():
    driver = webdriver.Chrome()
    driver.get(URL)
    element = driver.find_element_by_name("q")
    element.send_keys(adress, Keys.ARROW_DOWN)
    element.send_keys(Keys.ENTER)
    elems = driver.find_elements_by_css_selector(".r [href]")
    link = [elem.get_attribute('href') for elem in elems]
    url = link[0]    #wikipedia's page's link


if __name__ == "__main__":
    main()

这是 HTML 代码

<h2>
<span class="mw-headline" id="Further_reading">Further reading</span>
</h2>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
...
</ul>
<h3>
<span class="mw-headline" id="Primary_sources">Primary sources</span>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
...
</ul>

网址 - https://en.wikipedia.org/wiki/Bill_Gates

【问题讨论】:

    标签: html python-3.x selenium parsing selenium-webdriver


    【解决方案1】:

    此页面在 2 个h2 标记之间有进一步阅读文本。要收集文本,只需在h2s 之间找到ul 元素。这是对我有用的代码:

    # Open the page:
    driver.get('https://en.wikipedia.org/wiki/Bill_Gates')
    # Search for element, get text:
    further_read = driver.find_element_by_xpath("//ul[preceding-sibling::h2[./span[@id='Further_reading']] and following-sibling::h2[./span[@id='External_links']]]").text
    print(further_read)
    

    我希望这会有所帮助,祝你好运。

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 2017-05-04
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多