Python爬虫获取百度新闻

简介: Python爬虫百度新闻微笑的小小刀:有梦想,爱技术。在城市中奋斗却向往着田园生活有故事,有酒,来来来, 与尔同销万古愁本人博客 : www.lixiang.red谢谢大家支持总体步骤python 环境准备页面url分析代码抓取python 环境准备pycharmbeautifulSouprequests页面url 分析1487561491324.png这是直接在页面上进行百度新闻搜索,要注意url 。

Python爬虫百度新闻

微笑的小小刀:

有梦想,爱技术。在城市中奋斗却向往着田园生活
有故事,有酒,来来来, 与尔同销万古愁

本人博客 : www.lixiang.red

谢谢大家支持

总体步骤

  • python 环境准备
  • 页面url分析
  • 代码抓取

python 环境准备

  • pycharm
  • beautifulSoup
  • requests

页面url 分析

img_62683c9a9497248e39ef911229766cc0.png
1487561491324.png

这是直接在页面上进行百度新闻搜索,要注意url 。

这里先在python中写一段测试代码:

url = "http://news.baidu.com/ns?word=%CE%A2%D0%A6%B5%C4%D0%A1%D0%A1%B5%B6&cl=2&rn=20"
r = requests.get(url)
html = r.text
soup = BeautifulSoup(html, 'html.parser')
div_items = soup.find_all('div', class_='tn-bxitem')

在div_items那行打个断点。运行到那里之后的效果:

img_042cc35213f330f6021d64deb627a1b4.png
1487561766140.png

我们将soup里面的value拷贝出来,这就是我们从百度上面抓取的东西,现在就是对他进行分析。

img_f13319a83fe407205bf7d2f38071ab65.png
1487561867829.png

总行数有54313行, 我们就是要从里面找到有用的信息。

可以看到,他是把css样式文件也放在里面了,我们先把<style>标签里面的东西删掉

img_3aa6f0b70bfce56e55943cc5b6f1ad4e.png
1487563085891.png

然后再把js <script>的代码删掉,只保留html代码。

img_7c8a67d0ae72319643d5750957d1e769.png
1487563291005.png

最后删完之后只剩下5241行了。虽然还是很多,但已经是比较少的了。

寻找有用信息

可以看到,结果被包涵在类名为 result的div里面, 我们就要在程序里面把这个div取出来

img_f1d4e32f0c69a857af3fd8e4fef26ed5.png
1487571577529.png

在上述程序中加入代码:

soup = BeautifulSoup(html, 'html.parser')
# 取出结果div 
div_items = soup.find_all('div', class_='result')
print(div_items)

在print处打上断点可见:

正是我们需要的新闻,但还有细节需要提炼出来。可以注意到, 我们需要的东西都在class="result"的div里面。

img_c5cce16ef978bacc5a04eb83d2eeb7dc.png
1487574102509.png
  • 从h3 class="c-title"中取出标题,以及链接

    添加代码:

    # 取出结果div
    div_items = soup.find_all('div', class_='result')
    
    for div in div_items:
        # 取出title , 链接
        a_title = div.find('h3', class_='c-title').find('a').get_text()
        a_href = div.find('h3', class_='c-title').find('a').get('href')
        print(a_title)
        print(a_href)
    

    在控制台上打印结果如下:

img_55e11611de7ae162cd68d2c7b631b4bf.png
1487575841227.png
  • 取出简介

      a_href = div.find('h3', class_='c-title').find('a').get('href')
        # 取出简介
        a_summary = div.find('div', class_='c-summary').get_text()
    

    在控制如打印结果如下:

img_03f093b11b7dfd17717155264c0f3728.png
1487576938977.png
  • 整理信息输出到文件

      # 取出简介
        a_summary = div.find('div', class_='c-summary').get_text()
        # 获取当前时间
        now = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        # 输出到文件
        with open('news' + now + '.txt', 'a', encoding='utf-8') as file:
            file.write("标题: " + a_title + "\n")
            file.write("链接: " + a_href + "\n")
            file.write("简介: " + a_summary + "\n")
    
  • 输出到文件的结果

img_c0c35373e3ffa8694e60670a35bfe673.png
1487578138979.png

代码整理

from bs4 import BeautifulSoup
import requests
import time


# 定义url
url = "http://news.baidu.com/ns?word=%CE%A2%D0%A6%B5%C4%D0%A1%D0%A1%B5%B6&cl=2&rn=20"
r = requests.get(url)
html = r.text
soup = BeautifulSoup(html, 'html.parser')
# 取出结果div
div_items = soup.find_all('div', class_='result')

for div in div_items:
    # 取出title , 链接
    a_title = div.find('h3', class_='c-title').find('a').get_text()
    a_href = div.find('h3', class_='c-title').find('a').get('href')
    # 取出简介
    a_summary = div.find('div', class_='c-summary').get_text()
    # 获取当前时间
    now = time.strftime('%Y-%m-%d', time.localtime(time.time()))
    with open('news' + now + '.txt', 'a', encoding='utf-8') as file:
        file.write("标题: " + a_title + "\n")
        file.write("链接: " + a_href + "\n")
        file.write("简介: " + a_summary + "\n")

相关文章
|
9天前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
21天前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
21天前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
|
2月前
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
|
1月前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
1月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
1月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
2月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
125 0
|
2月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
196 0
|
2月前
|
数据采集 监控 调度
应对频率限制:设计智能延迟的微信读书Python爬虫
应对频率限制:设计智能延迟的微信读书Python爬虫

热门文章

最新文章

推荐镜像

更多