【发布时间】:2018-04-16 03:13:18
【问题描述】:
所以我尝试创建一个刮板,用于隔离页面的引用部分,然后从该网页中抓取标题和第一段或类似内容。 目前,我已经做到了,所以它可以隔离参考页面,但我不确定在“进入”其他链接方面如何取得进展。
这是我目前的代码
def customScrape(e1, master):
session = requests.Session()
# selectWikiPage = input("Please enter the Wikipedia page you wish to scrape from")
selectWikiPage = e1.get()
if "wikipedia" in selectWikiPage: #turn this into a re
html = session.post(selectWikiPage)
bsObj = BeautifulSoup(html.text, "html.parser")
findReferences = bsObj.find('ol', {'class': 'references'}) # isolate refereces section of page
href = BeautifulSoup(str(findReferences), "html.parser")
links = [a["href"] for a in href.find_all("a", href=True)]
for link in links:
print("Link: " + link)
else:
print("Error: Please enter a valid Wikipedia URL")
【问题讨论】:
-
我不明白你的问题,你为什么不把你选择的链接保存在一个数组中,然后用类似的方法来处理它们,然后搜索你想要的东西?
-
嗯,要怎么做呢? @SeeuD1
-
您只需要创建一个类似 GetContents(Links) 的方法,在其中将您的链接作为参数,您可以在链接中创建一个 for Link:您可以在其中迭代列表并请求每个链接并将您从中保留的数据保存在另一个数组中,您可以在其中使用您选择的数据。这只是一种方法,你也可以做一个递归方法或类似的方法
-
您想输入位于参考部分的链接吗?或第一个维基百科页面中的任何链接?请注意,参考部分中的大多数链接都托管在维基百科以外的其他地方!
-
我知道这并不能回答您提出的直接问题,但其他人可能会觉得它很有用...如果您需要使用维基百科作为结构数据,请查看相关项目: wikidata.org/wiki/Wikidata:Main_Page - 这提供了维基百科大部分内容的结构化数据视图,包括主题之间的链接,并且可以在没有互联网连接延迟的情况下完整下载以进行分析。
标签: python python-3.x web-scraping beautifulsoup wikipedia