📜  从 GeeksForGeeks 文章中提取代码

📅  最后修改于: 2022-05-13 01:54:24.711000             🧑  作者: Mango

从 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)


输出: