第一次用python爬取学校新闻页面

之前学过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爬取页面踩的所有的坑了,记录自己的进步,也希望能给第一次写爬虫的人带来一些帮助。

你可能感兴趣的:(python)