我正在尝试抓取具有嵌入式推文https://thehill.com/homenews/news/376608-west-virginia-teachers-to-continue-strike-after-state-senate-passes-lower-raise
的网页。当我使用浏览器中的inspect元素时,它会向嵌入式tweet显示相应的HTML元素,但是当我通过页面资源或使用beautifullSoup.findAll()搜索它时,它们不会返回任何结果。我该如何解决这个问题?
答案 0 :(得分:1)
它是动态的,这意味着在拉动页面之前,您需要使用Selenium之类的东西来呈现页面。但是,该链接位于原始的html源代码中,其中包含部分推文,因此您也许可以这样做:
import requests
from bs4 import BeautifulSoup
url = 'https://thehill.com/homenews/news/376608-west-virginia-teachers-to-continue-strike-after-state-senate-passes-lower-raise'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
tweets = soup.find_all('blockquote',{'class':'twitter-tweet'})
for tweet in tweets:
tweet_link = tweet.find('a')['href']
print (tweet_link)