我正试图刮掉这个新闻网站的左侧(= SENESTE NYT): https://www.dr.dk/nyheder/
但似乎数据无处可寻?在html或相关的api / json等中都没有。它是某种推送数据吗?
使用Chrome的网络控制台我发现这个api但它不包含左侧的新闻: https://www.dr.dk/tjenester/newsapp-content/teasers?reqoffset=0&reqlimit=100
任何人都可以帮助我吗?我如何刮“SENESTE NYT”?
答案 0 :(得分:0)
我首先使用selenium加载页面,然后使用BeautifulSoup进行处理。
from selenium import webdriver
from bs4 import BeautifulSoup
url = "https://www.dr.dk/nyheder"
driver = webdriver.Chrome()
driver.get(url)
page_source = driver.page_source
soup = BeautifulSoup(page_source, "lxml")
div = soup.find("div", {"class":"timeline-container"})
headlines = div.find_all("h3")
print(headlines)
它似乎找到了头条新闻:
[<h3>Puigdemont: Debatterede spørgsmål af interesse for hele Europa</h3>,
<h3>Afblæser tsunami-varsel for Hawaii</h3>,
<h3>56.000 flygter fra vulkan i udbrud </h3>,
<h3>Pence: USA offentliggør snart plan for ambassadeflytning </h3>,
<h3>Østjysk motorvej genåbnet </h3>]
不确定这是否是你想要的。
----- ---- EDITED
更有效的方法是使用一些自定义标头创建请求(已经确认这不起作用)
import requests
headers = {
"Accept":"*/*",
"Host":"www.dr.dk",
"Referer":"https://www.dr.dk/nyheder",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}
r = requests.get(url="https://www.dr.dk/tjenester/newsapp-content/teasers?reqoffset=0&reqlimit=100", headers=headers)
r.json()