栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫——爬取某网站新闻

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫——爬取某网站新闻

文章目录
  • 前言
  • 一、基本目标
  • 二、使用步骤
    • 整体代码
  • 结果
  • 总结


前言

随机找了个网站爬爬,我们的目标是
1.利用爬虫的re、xpath等知识,爬取到这个官网上的新闻,内容有:新闻标题, 发布时间, 新闻链接, 阅读次数, 新闻来源五个属性。
2.把我们爬到的数据放到一个csv的文件中!
那么我们下面开始!


提示:爬虫不可用作违法活动,爬取时要设定休眠时间,不可过度爬取,造成服务器宕机,需付法律责任!!!

一、基本目标

我们的目标是爬取这个https://www.cqwu.edu.cn/channel_23133_0310.html网址的新闻数据

二、使用步骤 整体代码
import re
import time
import requests
from lxml import etree
import csv

# 带爬网址
base_url = "https://www.cqwu.edu.cn/channel_23133_0310.html"
# 反反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "zh-CN,zh;q=0.9"
}

# 爬取信息
resp = requests.get(url=base_url,headers=headers)
# 把信息通过etree进行赋值
html = etree.HTML(resp.text)
# xpath定位新闻列表信息
news_list = html.xpath("/html/body/div/div[3]/div/div/div[2]/div/ul/li")
data_list = []
# 对新闻列表循环遍历
for news in news_list:
    # 获取新闻链接
    news_url = news.xpath("./a/@href")[0]
    # 继续爬取新闻的详情页
    news_resp = requests.get(url=news_url)
    # 把详情页html信息赋值
    news_html = etree.HTML(news_resp.text)
    # xpath定位新闻详情页的标题
    news_title = news_html.xpath("/html/body/div/div[3]/div[1]/div/div[2]/div/div/h4/text()")[0]
    # re正则获取日期和引用来源
    time_refer_obj = re.compile(r'.*?发布时间:(?P