首页 > 编程语言 >Python爬虫实战系列3:今日BBNews编程新闻采集

Python爬虫实战系列3:今日BBNews编程新闻采集

时间:2024-03-15 09:15:32浏览次数:33  
标签:__ Python self 爬虫 BBNews path news type

一、分析页面

打开今日BBNews网址 https://news.bicido.com ,下拉选择【编程】栏目

首页.png

1.1、分析请求

F12打开开发者模式,然后点击Network后点击任意一个请求,Ctrl+F开启搜索,输入标题Apache Doris 2.1.0 版本发布 ,开始搜索

分析请求.png

搜索结果显示直接返回的json格式,那就so easy了,直接copy curl,然后将curl 转换为Python代码,运行。

推荐个curl转Python代码的在线工具:https://curlconverter.com/

curl_to_python.png

二、代码实现

直接将curl 转换后的Python代码做下修改,然后调试运行即可。

完整代码

# -*- coding: utf-8 -*-
import os
import sys
from datetime import datetime

import requests

opd = os.path.dirname
curr_path = opd(os.path.realpath(__file__))
proj_path = opd(opd(opd(curr_path)))
sys.path.insert(0, proj_path)

from app.conf.conf_base import USERAGENT

spider_config = {
    "name_en": "https://news.bicido.com",
    "name_cn": "今日BBNews"
}


class Bbnews:
    def __init__(self):
        self.headers = {
            'referer': 'https://news.bicido.com/',
            'user-agent': USERAGENT
        }

    def get_group(self):
        url = 'https://news.bicido.com/api/config/news_group/'
        content = requests.get(url=url, headers=self.headers)
        content = content.json()
        return content

    def get_news(self):
        groups = self.get_group()
        news_type = []
        for group in groups:
            if group['name'] == '编程':
                news_type = group['news_types']
        result = []
        for news_type in news_type:
            type_id = news_type['id']
            url = f'https://news.bicido.com/api/news/?type_id={type_id}'
            content = requests.get(url, headers=self.headers)
            news_list = content.json()
            for new in news_list:
                result.append({
                    "news_title": str(new['title']),
                    "news_date": datetime.now(),
                    "source_en": spider_config['name_en'],
                    "source_cn": spider_config['name_cn'],
                })
        return result


def main():
    bbnews = Bbnews()
    results = bbnews.get_news()
    print(results)


if __name__ == '__main__':
    main()

总结

  1. 今日BBNews页面没反爬策略,比较简单,拿来即用
  2. 本文介绍了curl to Python的工具,方便好用。

本文章代码只做学习交流使用,作者不负责任何由此引起的法律责任。

各位看官,如对你有帮助欢迎点赞,收藏,转发,关注公众号【Python魔法师】获取更多Python魔法~

qrcode.jpg

标签:__,Python,self,爬虫,BBNews,path,news,type
From: https://www.cnblogs.com/meet/p/18068021

相关文章

  • python的代码发布到服务器上需要注意的事项
    1、服务器的python运行环境配置。从官网上 https://www.python.org/ 下载服务器操作系统对应的版本。 然后配置 python和pip命令运行的环境变量,这是windows下的 检查是否正常:  2、开发时引用的第三方库要在服务器上安装。   a.首先获取需要的第三方库......
  • 【python】自动化工具Selenium与playwright去除webdriver检测
    对这个世界如果你有太多的抱怨跌倒了就不敢继续往前走为什么人要这么的脆弱堕落请你打开电视看看多少人为生命在努力勇敢的走下去我们是不是该知足珍惜一切就算没有拥有                     ......
  • python第十三天
    map函数map函数可以将函数进行灵活运用,先预先设置需要调用的函数,然后最后对map函数进行设置,最终输出时可以将预先设置函数对map函数进行处理,已达到灵活运用的结果defadd_1(x):returnx+1defre_1(x):returnx-1defkf_1(x):returnx**2defmap_test(func......
  • Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码
    Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码引言:功能概述步骤一:提取PDF标题步骤二:生成目录和页码,合并PDF技术亮点代码步骤一:提取PDF标题(Step_two.ipynb)步骤二:生成目录和页码,合并PDF(Step_two.ipynb)引言:在学术研究、文档管理等领域,经常需......
  • python上传图片到网站
    使用requests库实现图片上传在Python中,requests库是处理HTTP请求的一个强大工具,它提供了一种简单易用的方法来执行网络请求。在将图片上传到网站的场景中,可以使用requests库中的post方法,将图片作为多部分编码文件(multipart-encodedfile)发送到服务器。第一,需要一份待上传的图......
  • python项目开发——总结笔记(csv excel读取 服务端端口进程 拟合预测 时间格式转化 服
    目录部署服务端程序主服务端控制程序main.py子目录的计算程序jisuan.py读取数据读取csv数据读取读取excel时间格式转换时间戳转datetime并且生成时间序列最后格式化时间 常用函数拟合预测服务端程序控制与维护部署服务端程序主服务端控制程序main.pyfromfl......
  • 【二分法】分巧克力问题/python
    1.看出是用二分法:最大值最小化,最小值最大化,满足条件的最值,用二分法做。2.确定low,high,确定check的条件3.注意: 是当low<high的时候进行循环,当相等或大于的时候输出,while的条件不能写错。 本题是在区间里面找满足条件的最大值,所以,在算mid的时候面对取整的问题让它向大......
  • python post测试
    pythonpost测试 importrequests#设置请求的URLurl='http://example.com/api/post'#准备要发送的数据,这里假设有一个中文字段'name'data={'name':'张三',#中文名字'age':30}#发送POST请求,指定headers中的Content-Type为applica......
  • Python学习随记(二)
    Python学习随记(二)print函数#hello,aworld为print函数所输出测内容,sep='|'中表示使用|替换为输出内容间原本的空格,#end=''使用空格替换print函数结尾原本的换行符print("hello","aworld",sep='|',end='')#检测多行注释是否为字符串print(&......
  • python下载win32gui的库失败解决教程
    1、进入这个网站https://www.lfd.uci.edu/~gohlke/pythonlibs/界面如下:因为这些安装包都是按照字母顺序排序的,所以就向下翻到pywin32的位置就行;选择跟自己的python版本相对应的这个库的版本,点击即可下载;等待下载完成:2、进入到pycharm软件里面,运用命令实现库的安装python-......