1.requests 爬取(多页)文字和图片并保存为csv文件

import requests
import csv
from lxml import etree

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 SLBrowser/9.0.0.10191 SLBChan/105"
}
move_title = ["电影名", "出产地", "电影时长", "上映时间", "封面网址"]
with open("moves.csv", "w", encoding="utf_8", newline="") as f:
    w = csv.writer(f)
    w.writerow(move_title)
    for i in range(1, 3):
        url = "https://ssr3.scrape.center" + f"/page/{i}"

        response = requests.get(url, headers=headers, auth=("admin", "admin"))  # auth=():这是一个包含用户名和密码的元组,用于登录或验证用户

        # 解析获取的响应
        html = etree.HTML(response.content.decode())  # 字节串(bytes),而 .decode() 方法是将其转换为字符串(str)。

        # 获取li标签   分组
        div_list = html.xpath('//div[@class="el-col el-col-18 el-col-offset-3"]/div')

        for li in div_list:
            name = li.xpath('.//div/div/div[2]/a/h2/text()')[0]
            addr = li.xpath('.//div[@class="el-row"]/div[2]/div[2]/span[1]/text()')[0]
            time_long = li.xpath('.//div[@class="el-row"]/div[2]/div[2]/span[3]/text()')[0]
            time_agen = li.xpath('.//div[@class="el-row"]/div[2]/div[3]/span/text()')[0] if len(
                li.xpath('.//div[@class="el-row"]/div[2]/div[3]/span/text()')) > 0 else None
            img_url = li.xpath('.//div[@class="el-row"]/div[1]/a/img/@src')[0]
            # 获取封面
            responses = requests.get(img_url, headers=headers)
            filepath = r'./dyimg/' + name + ".png"
            with open(filepath, "wb") as f:
                f.write(responses.content)
            #print(filepath)

            move_info = [name, addr, time_long, time_agen, img_url]
            w.writerow(move_info)

print("ok")

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python多页爬取保存可以通过以下步骤实现: 1. 导入所需的库:需要导入`requests`库来发送HTTP请求,以及`beautifulsoup4`库来解析网页内容。 2. 构建爬取多页的循环:首先确定需要爬取的页数范围,并使用循环遍历每一页的网址。 3. 发送HTTP请求并获取网页内容:使用`requests.get()`函数发送HTTP请求,并将网页的内容保存在一个变量中。 4. 解析网页内容:使用`BeautifulSoup`类对网页内容进行解析,以便提取所需的数据。可以通过查看网页源代码或使用开发者工具来确定需要提取的数据所在的标签和属性。 5. 提取数据保存:通过使用`find()`、`find_all()`等方法来提取所需的数据,并将其保存在一个变量中。可以将数据保存在一个列表中,便于后续的处理和保存。 6. 保存数据:将提取后的数据保存文件中,常见的保存方式有保存为文本文件(如CSV或TXT格式)、保存为Excel文件(如XLSX格式)等。 7. 循环结束后,可以在程序中添加一些清理操作,如关闭文件或释放资源等。 下面是一个示例代码,用于爬取某网站的多个页面并保存CSV文件: ```python import requests from bs4 import BeautifulSoup import csv for i in range(1, 6): # 从第1页到第5页 url = f"http://example.com/page/{i}" # 替换为要爬取的网址 response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") # 提取数据保存 data = [] for item in soup.find_all("div", class_="item"): # 替换为实际标签和属性 title = item.find("h2").text # 替换为实际标签和属性 price = item.find("span", class_="price").text # 替换为实际标签和属性 data.append([title, price]) # 保存数据CSV文件 with open(f"data_page_{i}.csv", "w", newline="", encoding="utf-8") as f: # 替换为保存文件名和编码方式 writer = csv.writer(f) writer.writerow(["Title", "Price"]) # 写入表头 writer.writerows(data) # 写入数据 ``` 以上代码仅作为示例,实际使用时需要根据具体的网页结构和需求进行修改。同时,在实际爬取时还要注意遵守网站的爬虫规则,以免造成不必要的麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值