import requests from bs4 import BeautifulSoup import random import time main_url="http://www.xsbiquge.org/book/11432/" headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0' } main_req=requests.get(main_url,headers=headers) title_list=[] chapters_list=[] main_bs4=BeautifulSoup(main_req.text,"html.parser") #print(main_bs4.text) main_find_list=main_bs4.find_all("div",class_="info-chapters flex flex-wrap")[1].select("a") #print(main_find_list[1].text) #print(len(main_find_list)) for i in main_find_list: #print(i) title_list.append(i.text) chapters_list.append("www.xsbiquge.org"+i["href"]) #print(title_list) #print(chapters_list) fp=open("./shu.txt","w",encoding="utf-8") for i,chapter_url in enumerate(chapters_list): chapter_req=requests.get(chapter_url,headers=headers) chapter_bs4=BeautifulSoup(chapter_req.text,"html.parser") print(chapter_bs4.select("#article"))
时间: 2024-04-04 21:34:31 浏览: 153
python中bs4.BeautifulSoup的基本用法
5星 · 资源好评率100%
好的,我看到你的代码了。代码中存在两个问题:
1. 第一行的代码需要在 `import` 关键字前添加 `from` 关键字,正确的写法为:
```python
from requests import requests
from bs4 import BeautifulSoup
import random
import time
```
2. `chapters_list` 中存储的是每个章节的链接地址,但是在输出章节内容时,代码中使用了 `chapter_bs4.select("#article")`,这个选择器是用来选择 id 为 `article` 的元素,但是章节内容并没有这个 id,所以需要修改这一行代码。你可以使用 `chapter_bs4.select("div#content")` 来选择章节内容所在的元素。
修改后的代码如下所示:
```python
from requests import requests
from bs4 import BeautifulSoup
import random
import time
main_url="http://www.xsbiquge.org/book/11432/"
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0'
}
main_req=requests.get(main_url,headers=headers)
title_list=[]
chapters_list=[]
main_bs4=BeautifulSoup(main_req.text,"html.parser")
#print(main_bs4.text)
main_find_list=main_bs4.find_all("div",class_="info-chapters flex flex-wrap")[1].select("a")
#print(main_find_list[1].text)
#print(len(main_find_list))
for i in main_find_list:
#print(i)
title_list.append(i.text)
chapters_list.append("http://www.xsbiquge.org"+i["href"])
#print(title_list)
#print(chapters_list)
fp=open("./shu.txt","w",encoding="utf-8")
for i,chapter_url in enumerate(chapters_list):
chapter_req=requests.get(chapter_url,headers=headers)
chapter_bs4=BeautifulSoup(chapter_req.text,"html.parser")
content = chapter_bs4.select("div#content")[0].text
fp.write(title_list[i] + "\n")
fp.write(content + "\n\n")
time.sleep(random.uniform(1, 3))
print(title_list[i] + "下载完成!")
fp.close()
```
希望这个修改能够解决你的问题,如果还有其他问题,请随时问我。
阅读全文