[⭐Веселая игра] Эффективное извлечение текста общих новостей

сбор данных

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

Эффективный экстрактор общих новостей

Исследования в области НЛП потребуют обхода большого количества новостных данных более-менее Писать набор правил обхода для каждого новостного сайта однозначно не подходит, С помощью стороннего софта нужно платить за гибкое сканирование Этот блог всегда найдется В этой статье представлен эффективный единый набор инструментов для извлечения новостей, который идеально подходит для извлечения новостной информации с разных новостных порталов.

GeneralNewsExtractor(GNE)Это общий модуль извлечения текста новостного веб-сайта, вводящий HTML-код новостной веб-страницы и выводящий текстовое содержимое, заголовок, автора, время публикации, адрес изображения в тексте и исходный код тега, где находится текст. GNE очень эффективно извлекает сотни китайских новостных веб-сайтов, таких как Toutiao, Netease News, Youmin Xingxing, Observer.com, Phoenix.com, Tencent News, ReadHub, Sina News и т. д., почти со 100% точностью.

Исходный код GeneralNewsExtractor (GNE):GitHub.com/kingthen/ge…

Способ установки:

pip install --upgrade gne

Он также очень прост в использовании:

from gne import GeneralNewsExtractor
extractor = GeneralNewsExtractor()
html = '网站源代码'
result = extractor.extract(html)
print(result)

Этот проект называется抽取器, вместо爬虫, чтобы избежать ненужных рисков, поэтому вход этого проекта — исходный код HTML, а выход — словарь. Пожалуйста, используйте соответствующий метод для получения HTML-кода целевого веб-сайта.

Супер прост в использовании, он может идеально сканировать новости любого веб-сайта! ! !


Авторский эксперимент: возьмем в качестве примера People's Daily News Пример 1:

import pandas as pd
from gne import GeneralNewsExtractor
import requests

# 获取html
url = "http://edu.people.com.cn/n1/2021/0504/c1006-32094364.html"
rep = requests.get(url)
source = rep.content.decode("gbk",errors='ignore')
# 创建GNE提取器
extractor = GeneralNewsExtractor()
# 传入输入(html)得到结果
result = extractor.extract(source)
# 结果以{“title”,“author”,“publish_time”,“content”,“images”}的字典类型进行返回
print(result)

Сканируйте, как показано ниже:

image.png

Кроме того, автор также попробовал несколько популярных новостных порталов, и извлечение в основном прошло успешно.

Пример экспериментального кода 2:

import pandas as pd
from gne import GeneralNewsExtractor
import requests
import chardet

class NewsExtract(object):
    
    def __init__(self):
        pass
    
    def extract(self,url):
        # 读取链接
        rep = requests.get(url)
        # 获取网页编码
        encoding = chardet.detect(rep.content)["encoding"]
        # 解析网页源码
        source = rep.content.decode(encoding,errors='ignore')
        # 创建GNE提取器
        extractor = GeneralNewsExtractor()
        # 传入输入(html)得到结果
        result = extractor.extract(source)
        return result 

if __name__ == '__main__':
        news_website ={
        "01百度新闻":"https://news.cctv.com/2021/10/08/ARTIdfEmRcmTVug3xbAetmHw211008.shtml",
        "02新浪新闻":"https://news.sina.com.cn/c/2021-10-08/doc-iktzqtyu0280551.shtml",
        "03人民网":"http://opinion.people.com.cn/n1/2021/1008/c1003-32246575.html",
        "04澎湃新闻":"https://www.thepaper.cn/newsDetail_forward_14812232",
        "05新华网":"http://www.news.cn/politics/leaders/2021-10/07/c_1127935225.htm",
        "06腾讯新闻":"https://new.qq.com/omn/TWF20211/TWF2021100800473500.html",
        "08百度新闻":"http://baijiahao.baidu.com/s?id=1713042599973678893",
        "09凤凰新闻":"https://news.ifeng.com/c/8AAfop0xwa6",
        "10搜狐新闻":"https://www.sohu.com/a/493916920_114988?spm=smpc.news-home.top-news3.4.1633693367314ApmGjAj&_f=index_chan08news_8",
        }
    # 创建提取器
    ne = NewsExtract()
    # 暴力提取
    for idx,url in news_website.items():
        try:
            print(f"==={idx}:{url}===")
            info_news = ne.extract("http://edu.people.com.cn/n1/2021/0504/c1006-32094364.html")
            print(info_news)
            print()
        except:
            print(f"{idx}爬取失败")

Веб-сайты, которые пробовали прежде всего, успешно извлекали новостной контент! ~

Таким образом, в процессе сканирования информации с нескольких новостных порталов GNE можно использовать для абстрагирования шагов написания правил для извлечения каждой новостной веб-страницы, и нужно сосредоточиться только на том, как собирать все более и более полные URL-адреса, чтобы эти URL-адреса образуют пул URL-адресов новостей.

⭐⭐⭐ С нетерпением жду более интересного кодинга и подробного обмена мнениями~~~