温馨提示×

怎么用python爬虫爬取多页

小亿
85
2024-12-05 11:42:34
栏目: 编程语言

要使用Python爬虫爬取多页,您可以使用第三方库requests和BeautifulSoup。以下是一个简单的示例,说明如何爬取一个具有多个页面的网站。

首先,确保您已经安装了requests和beautifulsoup4库。如果尚未安装,请使用以下命令进行安装:

pip install requests beautifulsoup4

接下来,创建一个名为web_scraper.py的Python文件,并在其中编写以下代码:

import requests
from bs4 import BeautifulSoup

def get_page_content(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.text
    else:
        print(f"Error {response.status_code}: Unable to fetch the page")
        return None

def parse_page(html):
    soup = BeautifulSoup(html, "html.parser")
    # 根据网站的HTML结构提取所需数据
    # 例如,提取所有链接
    links = soup.find_all("a")
    for link in links:
        print(link.get("href"))

def main():
    base_url = "https://example.com/page"  # 更改为要爬取的网站的URL
    start_page = 1
    end_page = 10  # 设置要爬取的页数范围

    for page in range(start_page, end_page + 1):
        url = f"{base_url}{page}.html"
        html = get_page_content(url)
        if html:
            parse_page(html)
        else:
            break

if __name__ == "__main__":
    main()

在上面的代码中,我们定义了三个函数:

  1. get_page_content(url):接收一个URL作为参数,使用requests库获取页面内容并返回。
  2. parse_page(html):接收一个HTML字符串作为参数,使用BeautifulSoup解析HTML并提取所需数据。在这个例子中,我们提取了所有链接。
  3. main():设置要爬取的网站的URL、起始页和结束页,然后遍历这些页面,对每个页面调用get_page_content()parse_page()函数。

请注意,您需要根据要爬取的网站的实际HTML结构修改parse_page()函数中的代码。此外,如果网站有分页,您可能需要检查URL中是否包含页码参数,并根据需要对其进行处理。

0