python爬虫爬取起点中文网,并生成csv文件,不使用bs4
时间: 2024-09-28 19:07:53 浏览: 18
在Python中爬取起点中文网并生成CSV文件而不使用BeautifulSoup库,你可以选择`requests`库用于发送HTTP请求获取HTML内容,然后使用`re`模块进行正则表达式解析提取你需要的数据,最后利用`pandas`库将数据转换成DataFrame,并保存为CSV。
以下是一个简单的示例步骤:
1. 安装必要的库(如果尚未安装):
```bash
pip install requests pandas
```
2. 使用`requests`获取网页源码:
```python
import requests
url = "https://www.qidian.com/" # 起点中文网首页或其他章节页面URL
response = requests.get(url)
html_content = response.text
```
3. 使用正则表达式解析提取所需信息:
```python
import re
# 示例:假设你要抓取书名、作者和章节链接
book_info_pattern = re.compile(r'(?<=<span class="name">).*?(?=<)', re.S) # 此处需要根据实际HTML结构调整
books = re.findall(book_info_pattern, html_content)
chapter_links_pattern = re.compile(r'href="(.*?)"', re.S) # 同理,替换为实际链接匹配规则
chapters = [link.strip() for link in re.findall(chapter_links_pattern, html_content)]
```
4. 将数据整理成字典列表,准备存入DataFrame:
```python
data = [{"book_name": book, "author": "", "chapter_link": chapter} for book, chapter in zip(books[::2], chapters)] # 假设每两本书对应一个章节
```
5. 使用`pandas`创建DataFrame并保存为CSV:
```python
import pandas as pd
df = pd.DataFrame(data)
df.to_csv("起点小说.csv", index=False)
```
请注意,这个例子非常基础且可能因网站结构变化而失效。实际上,为了更稳定地爬取,你应该分析网页的HTML结构(例如使用`lxml`或`html.parser`),而不是依赖于固定的正则表达式。同时,尊重网站的robots.txt协议以及设置合理的延迟时间避免对服务器造成过多压力。