bs4 爬虫

本文介绍了一种利用Python的BS4库进行网页爬取的方法,详细展示了如何从指定URL获取页面内容,解析HTML结构,抓取章节标题与链接,并下载章节内容到本地文件。通过设置请求头和编码方式,确保了爬虫能够顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bs4 爬虫

import requests
from bs4 import BeautifulSoup

if __name__=='__main__':
    target="http://192.168.5.55/1.html"
    save_path = 'Z:\\text'
    index_path='https://www.wuruo.com/126/126892/'
    req=requests.get(url=target,
                     headers={
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
        }  
                     )
    req.encoding = 'gbk'
    soup = BeautifulSoup(req.text,"html.parser")
    #print(soup)
    list_tag = soup.find('div',attrs={'id':'readerlist'})
    #print(list_tag)
        
for dd_tag in list_tag.find_all('li',attrs={'a':''}):
    chapter_name = dd_tag.a.string
    #print(chapter_name)
    chapter_url=index_path+dd_tag.a.get('href')
    #print(chapter_url)
    chapter_req = requests.get(
        url=chapter_url,
        headers={
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
        }  
    )
    chapter_req.encoding = 'gbk'
    chapter_soup = BeautifulSoup(chapter_req.text, "html.parser")
    #print(chapter_soup)
    content_tag = chapter_soup.find('div',attrs={'id':'content'})
    content_name = chapter_soup.title.string
    print(content_name)
    content_text = str(content_tag.text.replace('\xa0','\n'))
    #print(content_text)
    with open('Z:\\0\\1.txt', 'a') as f:
            f.write(content_name)
            f.write(content_text)
### BeautifulSoup 爬虫实战教程:爬取电影信息 BeautifulSoup 是一个用于解析 HTML 和 XML 文档的 Python 库,它能够将网页内容转换为结构化的数据,便于提取和操作。对于初学者来说,使用 BeautifulSoup 进行爬虫开发是一种简单且高效的方式[^1]。 #### 1. 爬取豆瓣电影信息的基本流程 在实际应用中,可以通过以下步骤实现使用 BeautifulSoup 爬取电影信息的目标: - **发送 HTTP 请求**:利用 `requests` 库向目标网站(如豆瓣电影 Top250 页面)发送请求并获取网页内容。 - **解析 HTML 内容**:通过 BeautifulSoup 解析返回的 HTML 数据,提取所需的信息(例如电影名称、评分、导演等)。 - **存储数据**:将提取到的数据保存至文件或数据库中(例如 CSV 文件或 MongoDB)。 以下是一个简单的代码示例,演示如何使用 `requests` 和 `BeautifulSoup` 提取豆瓣电影 Top250 的电影名称和评分: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 存储结果的列表 movies = [] # 发送 HTTP 请求 for i in range(0, 250, 25): url = f'https://movie.douban.com/top250?start={i}' response = requests.get(url) html_content = response.text # 使用 BeautifulSoup 解析 HTML soup = BeautifulSoup(html_content, 'html.parser') # 查找所有电影条目 items = soup.find_all('div', class_='item') for item in items: title = item.find('span', class_='title').text rating = item.find('span', class_='rating_num').text movies.append({ '电影名称': title, '评分': rating }) # 将数据保存为 CSV 文件 df = pd.DataFrame(movies) df.to_csv('douban_top250.csv', index=False) ``` #### 2. 处理分页与动态加载内容 如果目标网站的内容是通过 JavaScript 动态加载的,单纯使用 `requests` 可能无法获取完整的 HTML 数据。此时可以结合 `Selenium` 模拟浏览器行为,加载完整页面后再使用 BeautifulSoup 提取数据[^2]。 #### 3. 遵守反爬虫策略 在进行网络爬虫时,需要注意网站的反爬虫机制,例如设置合理的请求间隔、使用代理 IP 或模拟用户行为等,以避免被封禁或限制访问[^3]。 #### 4. 数据存储与扩展 除了将数据保存为 CSV 文件外,还可以使用 `pandas` 结合 `MongoDB` 实现更复杂的数据存储和分析功能。此外,可以根据需求增加异常处理逻辑,提高程序的健壮性[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值