从 GeeksForGeeks 文章中提取代码
先决条件:
- BS4
- 要求
需要的模块
- requests -Requests 允许您非常轻松地发送 HTTP/1.1 请求。这个模块也没有内置在Python中。要安装,只需在终端中键入给定的命令。
pip install requests
- bs4 :- Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。这个模块没有内置于Python中。要安装它,请在终端中键入给定的命令。
pip install bs4
方法:
- 导入模块
- 获取文章名称作为输入
- 向 URL 发起 get 请求
- 废弃使用 bs4 编写的代码和语言名称
使用这个概念和使用给定的内容可以做很多事情,例如,您可以将每个代码直接保存在单独的文件中,并带有它们的扩展名,或者您可以废弃完整的文章并提取重要信息,如作者详细信息。
下面是实现。
Python3
import requests
from bs4 import BeautifulSoup
# input geeks for geeks article
article = 'extract-authors-information-from-geeksforgeeks-article-using-python'
index_Code = 3
# url
url = "https://www.geeksforgeeks.org/"+article
# Making a GET request
# to fetch article from
# geeksforgeeks servers
def getdata(url):
r = requests.get(url)
return r.text
def codescrapper(soup, article=None):
codes_languages = soup.find_all('h2', class_='tabtitle')
codes = soup.find_all("div", class_='code-container')
count_codes_language = len(codes_languages)
print(url)
if article and article <= count_codes_language:
print(codes[article-1].get_text())
else:
for x in range(count_codes_language):
print(codes[x].get_text())
if __name__ == '__main__':
complete_article_html = getdata(url)
soup = BeautifulSoup(complete_article_html, 'html.parser')
codescrapper(soup, index_Code)
输出: