爬取网站https:/www.17k.com/all上序号、类别、书名、最新章节、作者、更新时间、是否连载。并将以上信息存储在一个csv文件中,
时间: 2024-06-09 13:12:26 浏览: 126
python爬取招聘网信息并保存为csv文件
好的,这是一个比较复杂的任务,需要使用Python爬虫技术来实现。以下是实现的步骤:
1. 导入需要的库
```python
import requests
from bs4 import BeautifulSoup
import csv
```
2. 确定要爬取的页面链接
```python
url = "https://www.17k.com/all"
```
3. 发送请求并获取页面内容
```python
response = requests.get(url)
html = response.content
```
4. 使用BeautifulSoup解析页面内容
```python
soup = BeautifulSoup(html, 'html.parser')
```
5. 找到需要爬取的信息所在的标签,并提取相关信息
```python
# 找到所有的小说tr标签
novel_list = soup.find('table', class_='alltable').find_all('tr')
# 遍历所有小说,并提取相关信息
for novel in novel_list:
# 提取序号、类别、书名、最新章节、作者、更新时间、是否连载
num = novel.find('td', class_='td1').text.strip()
category = novel.find('td', class_='td2').text.strip()
name = novel.find('td', class_='td3').find('a').text.strip()
latest_chapter = novel.find('td', class_='td4').find('a').text.strip()
author = novel.find('td', class_='td5').find('a').text.strip()
update_time = novel.find('td', class_='td6').text.strip()
is_serial = novel.find('td', class_='td7').text.strip()
# 将提取到的信息写入csv文件
with open('novel.csv', mode='a', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow([num, category, name, latest_chapter, author, update_time, is_serial])
```
6. 将提取到的信息写入csv文件
```python
# 创建csv文件,并写入表头
with open('novel.csv', mode='w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['序号', '类别', '书名', '最新章节', '作者', '更新时间', '是否连载'])
# 遍历所有小说,并将提取到的信息写入csv文件
for novel in novel_list:
# 提取序号、类别、书名、最新章节、作者、更新时间、是否连载
num = novel.find('td', class_='td1').text.strip()
category = novel.find('td', class_='td2').text.strip()
name = novel.find('td', class_='td3').find('a').text.strip()
latest_chapter = novel.find('td', class_='td4').find('a').text.strip()
author = novel.find('td', class_='td5').find('a').text.strip()
update_time = novel.find('td', class_='td6').text.strip()
is_serial = novel.find('td', class_='td7').text.strip()
# 将提取到的信息写入csv文件
with open('novel.csv', mode='a', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow([num, category, name, latest_chapter, author, update_time, is_serial])
```
完整代码如下:
阅读全文