一、观察网页
网页地址:http://sthjj.ganzhou.gov.cn/gzssthjj/tzgg/202310/3acfd26678e5416eb13e606319ae4d01.shtml
我们查看网页源代码,发现新闻内容在其中,说明该网页是静态网页。
二、导入相关库
import requests from bs4 import BeautifulSoup import os from docx import Document from docx.shared import Inches #设置图片大小 from docx.shared import Pt, RGBColor #导入字号,颜色库,注意大小写
三、请求网页
针对静态网页,我们可以使用Requests库请求数据,过程如下:点击“Network”后刷新网页找到所需的第一个链接“3acfd26678e5416eb13e606319ae4d01.shtml”,其与本页网址尾端相对应,点击“Headers”可知,网页的请求方式为“GET”。
如果运行代码,显示Requests[200],即请求成功,则无需伪装请求头。但此网页需用请求头访问,为防止乱码,我们使用r.encoding=r.apparent_encoding。过程如下:
import requests url='http://sthjj.ganzhou.gov.cn/gzssthjj/tzgg/202310/3acfd26678e5416eb13e606319ae4d01.shtml' 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 Edg/114.0.1823.58'} r=requests.get(url=url,headers=headers,verify=False) print(r.status_code) r.encoding=r.apparent_encoding
四、解析数据
对页面的数据位置进行观察,发现新闻标题来源位于’h1’,class_="article-title"中,新闻来源和发布时间位于’span’,class_=“ly”,‘span’,class_="date"中,正文位于’div’,class_="detail clearfix”下的’ucapcontent’标签的div标签中,因此我们可以采用BeautifulSoup库解析数据。