之前学过python的一些基础知识,试试爬取学校新闻页面的内容并存储到txt文件中
首先上代码
from bs4 import BeautifulSoup
import urllib.request
import re
import os
def getContent(url):
page = urllib.request.urlopen(url)
html = page.read().decode("utf-8")
bs = BeautifulSoup(html, "html.parser") # 实例化对象
div = bs.find("div", id='vsb_content_501')
contentList = div.find_all('p')
return contentList
url = "https://www.jxust.edu.cn/info/1011/21843.htm"
contentList = getContent(url)
txtName = "CrawlerResult.txt"
result = open(txtName, "w", encoding='utf-8')
for content in contentList:
para=content.get_text()
result.write(str(para)+'\n')
print(para)
result.close()
爬取的过程中出现了很多问题,现在一个个回顾一下。
1、导入BeautifulSoup
BeautifulSoup包不能直接import,因为BeautifulSoup是放在bs4文件夹中的,所以要通过bs4文件夹导入BeautifulSoup;
2、寻找有id的div
div = bs.find("div", id='vsb_content_501')
3、将爬取页面的中文内容写入txt文件出现乱码
这种情况要在打开txt文件的时候加上后面的编码方式
open(fileName, "w", encoding='utf-8')
4、获取到了内容也不可以直接写入到文本文件中,要先用get_text()获取文本内容,然后write()函数写入的时候必须用str()函数使得变量转换为字符串才可以正常写入。
好了,这就是第一次用python爬取页面踩的所有的坑了,记录自己的进步,也希望能给第一次写爬虫的人带来一些帮助。