Я пытался сделать веб-анализ на Reuters для анализа nlp, и большая часть его работает, но я не могу получить код, чтобы нажать кнопку «загрузить больше» для получения дополнительных статей новостей. Ниже приведен код, используемый в настоящее время:
import csv
import time
import pprint
from datetime import datetime, timedelta
import requests
import nltk
nltk.download('vader_lexicon')
from urllib.request import urlopen
from bs4 import BeautifulSoup
from bs4.element import Tag
comp_name = 'Apple'
url = 'https://www.reuters.com/search/news?blob=' + comp_name + '&sortBy=date&dateRange=all'
res = requests.get(url.format(1))
soup = BeautifulSoup(res.text,"lxml")
for item in soup.find_all("h3",{"class":"search-result-title"}):
s = str(item)
article_addr = s.partition('a href="')[2].partition('">')[0]
headline = s.partition('a href="')[2].partition('">')[2].partition('</a></h3>')[0]
article_link = 'https://www.reuters.com' + article_addr
try:
resp = requests.get(article_addr)
except Exception as e:
try:
resp = requests.get(article_link)
except Exception as e:
continue
sauce = BeautifulSoup(resp.text,"lxml")
dateTag = sauce.find("div",{"class":"ArticleHeader_date"})
contentTag = sauce.find("div",{"class":"StandardArticleBody_body"})
date = None
title = None
content = None
if isinstance(dateTag,Tag):
date = dateTag.get_text().partition('/')[0]
if isinstance(contentTag,Tag):
content = contentTag.get_text().strip()
time.sleep(3)
link_soup = BeautifulSoup(content)
sentences = link_soup.findAll("p")
print(date, headline, article_link)
from selenium import webdriver
from selenium.webdriver.common.keys import keys
import time
browser = webdriver.Safari()
browser.get('https://www.reuters.com/search/news?blob=' + comp_name + '&sortBy=date&dateRange=all')
try:
element = WebDriverWait(browser, 3).until(EC.presence_of_element_located((By.ID,'Id_Of_Element')))
except TimeoutException:
print("Time out!")