从包含存档链接的网站中提取URL

2024-10-03 06:19:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在爬网一个新闻网站,以提取所有的链接,包括存档的,这是一个典型的新闻网站。网站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>

有人能帮帮我吗。谢谢。你知道吗


Tags: viewurldatagetnet网站linkbusiness
1条回答
网友
1楼 · 发布于 2024-10-03 06:19:28

您可以使用类似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()

相关问题 更多 >