改进代码import requests from bs4 import BeautifulSoup try: url="http://wap.stockstar.com/list/10" r=requests.get(url) #获取网页内容 r.encoding="utf-8" print(r.text) #返回的是Unicode编码的数据,也就是页面的源代码 except Exception as ex: print("打开网址出现错误!!!") print("错误信息: ",ex) else: soup=BeautifulSoup(r.text,"lxml") #注意这里要提前安装了模块lxml才可用,无需导入了 data=soup.find_all("li") #分析页面源代码可知,公司新闻条目都在<li>段中 print("证券之星---公司新闻") print("===================") for i in data: print(i.string) f=open("stock.txt","w") for i in data: print(i.string,file=f) f.close()
时间: 2024-04-26 19:21:22 浏览: 115
这段代码已经比较完善了,不过可以做一些小的改进:
1. 可以将请求的头部信息中的 User-Agent 字段设置为浏览器的 User-Agent,这样可以提高爬虫的稳定性。
2. 可以将保存到本地的文件名改为当前日期时间命名的方式,这样可以避免覆盖之前保存的数据。
改进后的代码如下:
```python
import requests
from bs4 import BeautifulSoup
import datetime
# 设置请求头部信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
url = "http://wap.stockstar.com/list/10"
r = requests.get(url, headers=headers) # 获取网页内容
r.encoding = "utf-8"
print(r.text) # 返回的是Unicode编码的数据,也就是页面的源代码
except Exception as ex:
print("打开网址出现错误!!!")
print("错误信息: ", ex)
else:
soup = BeautifulSoup(r.text, "lxml")
data = soup.find_all("li")
print("证券之星---公司新闻")
print("===================")
for i in data:
print(i.string)
# 保存到本地文件
now = datetime.datetime.now()
filename = now.strftime('%Y-%m-%d_%H-%M-%S') + '.txt'
with open(filename, "w", encoding="utf-8") as f:
for i in data:
print(i.string, file=f)
```
阅读全文