import requests import re import os list_url='https://www.biquge66.net/book/29689/' headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } html_data=requests.get(url=list_url, headers=headers).text name=re.findall('<meta property="og:novel:book_name" content="(.*?)" />',html_data)[0] file = f'{name}' if not os.path.exists(file): os.mkdir(file) url_list=re.findall('<a id="haitung" href="(.*?)"',html_data) for url in url_list: url='https://www.biquge66.net'+url headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } response=requests.get(url=url, headers=headers) title=re.findall('<span class="divcss5">(.*?)</span>',response.text)[0] content=re.findall('<div id="booktxt"><p>(.*?)<div class="content">',response.text)[0].replace('</p>','\n') content=content.replace('<p>','') print(title,'\n') print(content) print(url) with open(file + name + '.txt',mode='a',encoding='utf-8')as f: title=title.center(60) f.write(title) f.write('\n\n') f.write(content) f.write('\n')我这代码有什么问题吗
时间: 2024-04-03 12:33:53 浏览: 36
你的代码可能存在以下问题:
1. 变量 `list_url` 未定义,你需要将其定义为小说目录页的 URL。
2. 在第 7 行,你从小说目录页中提取小说名称时,使用了正则表达式,但是正则表达式中的内容可能因网页结构变化而失效。建议使用 BeautifulSoup 库来解析 HTML。
3. 在第 11 行,你使用了变量 `name`,但是该变量未定义。你需要将 `name` 定义为小说名称。
4. 在第 26 行,你将小说章节保存到文件时,文件名应该是 `title` 而不是 `name`。另外,建议将文件名中的特殊字符(如 `?`)替换为下划线。
5. 在第 31 行,你尝试提取小说章节的正文时,使用了正则表达式。建议使用 BeautifulSoup 库来解析 HTML。
6. 在第 35 行,你尝试将小说章节的正文保存到文件中时,需要将 `title` 居中对齐,否则会影响文件的可读性。
7. 在第 37 行,你将小说章节的正文保存到文件后,需要添加一个空行,否则不同章节之间的内容会连在一起。
相关问题
import requests if __name__=="__main__": url ='https://www.sogou.com/' requests.get()
在您的代码中,您需要在 `requests.get()` 函数中传入一个 URL 参数来发起 GET 请求。以下是一个示例,演示如何使用 `requests` 库发送 GET 请求:
```python
import requests
if __name__ == "__main__":
url = 'https://www.sogou.com/'
response = requests.get(url)
print(response.status_code) # 打印响应状态码
print(response.text) # 打印响应内容
```
在上面的示例中,`response` 变量将保存从指定 URL 获取的响应对象。您可以使用 `response.status_code` 获取响应的状态码,使用 `response.text` 获取响应的内容。记得替换 `url` 变量的值为您要请求的实际 URL。
import requests from bs4 import BeautifulSoup import re url = 'https://www.umei.net/tags/siwameitui/' domain = 'https://www.umei.net/' resp = requests.get(url) resp.encoding = 'utf-8' # print(resp.text) page = BeautifulSoup(resp.text, 'html.parser') list_li = page.findAll('li', attrs={"class": 'i_list list_n2'}) for i in list_li: list_page = BeautifulSoup(i, 'html.parser') break
你好!我是CSDN开发的ChitGPT,一个类ChatGPT的AI。你的第一个问题是关于如何使用Python抓取网页并解析HTML内容的代码。
下面是使用Python的requests库和BeautifulSoup库来实现这个功能的代码示例:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://www.umei.net/tags/siwameitui/'
domain = 'https://www.umei.net/'
resp = requests.get(url)
resp.encoding = 'utf-8'
page = BeautifulSoup(resp.text, 'html.parser')
list_li = page.findAll('li', attrs={"class": 'i_list list_n2'})
for i in list_li:
list_page = BeautifulSoup(str(i), 'html.parser')
# 在这里可以对每个li元素进行处理,提取所需的信息
```
以上代码首先使用`requests.get()`方法发送GET请求获取网页内容,然后将其编码为UTF-8格式。接下来,使用BeautifulSoup的`BeautifulSoup()`方法将网页内容解析为HTML对象。然后,使用`findAll()`方法查找所有符合条件的li元素,并逐个处理。
请注意,在处理每个li元素之前,需要将其转换为字符串形式,以便能够使用BeautifulSoup解析。
希望这能帮到你!如果你有任何其他问题,请随时提问。