我正在抓取一个新闻网站,以提取所有链接,包括新闻网站的典型链接。网站here有一个按钮View More Stories
,可以加载更多网站文章。现在这个代码在下面
def find_urls():
start_url = "e.vnexpress.net/news/business"
r = requests.get("http://" + start_url)
data = r.text
soup = BeautifulSoup(data, "html.parser")
links = soup.findAll('a')
url_list = []
for url in links:
all_link = url.get('href')
if all_link.startswith('http://e.vnexpress.net/news/business'):
url_list.append(all_link)
return set(url_list)
成功加载了不少网址,但如何在这里加载更多按钮的片段
<a href="javascript:void(0)" id="vnexpress_folder_load_more" data-page="2"
data-cate="1003895">
View more stories
</a>
有人能帮助我吗?感谢。
答案 0 :(得分:1)
您可以使用像selenium这样的浏览器点击按钮,直到按钮消失或禁用。最后,你可以一次性使用beautifulsoup刮掉整个页面。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#initializing browser
driver = webdriver.Firefox()
driver.set_window_size(1120, 550)
driver.get("http://e.vnexpress.net/news/news")
# run this till button is present
elem = driver.find_element_by_id('vnexpress_folder_load_more'))
elem.click()