开篇--Python获取新闻列表

新手中的新手,为了学习,尝试从这里出发---

举个例子:

新闻网站https://news.qq.com/,通过查看网页发现,网址进去之后,分页是下拉加载,只能通过浏览器的开发者工具查看分页网址

是Ajax形式的get带参数的请求方式,获取响应内容不再是页面数据,而是json字符串 ,通过参数offset和limit控制条数,获取不同的新闻内容,上代码

import requests
from bs4 import BeautifulSoup

from xlwt import *
import json

# 这种形式,在这里不能用
# user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'

headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
}
url = 'https://i.news.qq.com/trpc.qqnews_web.kv_srv.kv_srv_http_proxy/list?'

params = {
    'sub_srv_id': '24hours',
    'srv_id': 'pc',
    'offset': '0',
    'limit': '100',
    'strategy': '1',
    'ext': '{"pool":["top"],"is_filter":7,"check_type":true}'
}





# 保存到Excel
def save_excel(self):
    num = 1
    title_file = Workbook(encoding="utf-8")  # 存为Excel,以 utf-8 编码打开
    table = title_file.add_sheet('data')  # 打开“data” 工作薄
    # 存入表头
    table.write(0, 0, "发布时间")
    table.write(0, 1, "标题")
    table.write(0, 2, "内容地址")
    # all_data = self.send_url()  # 调用send_url()中 yield 的返回值
    for data in self:  # data 数据为元组类型
        # href = url + data.get('href')
        # title = data.string
        table.write(num, 0, data["publish_time"])
        table.write(num, 1, data["title"])
        table.write(num, 2, data["url"])
        print
        "saving done..."
        num += 1
    title_file.save("002.xls")  # 保存文件


# Ajax获取分页数据
def get_ajax():
    # 发起ajax的get请求还是用get方法
    response = requests.get(url=url, params=params, headers=headers)

    # 获取响应内容:响应内容为json字符串
    data = response.text
    # 把Json格式字符串解码转换成Python对象 从json到python的类型
    data = json.loads(data)
    # 操作json,获取元素
    data = data["data"]
    data = data["list"]
    save_excel(data)
    #for data_dict in data:
    #    print(data_dict["title"], data_dict["url"])



if __name__ == "__main__":
    get_ajax()

上面使用的 requests  BeautifulSoup需要安装一下

pip install requests
 
easy_install requests

这两种方式都可以安装。

 

ps:当然后续可以保持到文件中,目前还没有封装,继续。。。 

 

已更新保持到Excel中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A-n32-k5.vrp是一个车辆路径问题的实例,其中包含了31个顾客点和一个车场。每个顾客点都有一个需求量和坐标信息。该问题的最优目标是784,需要使用5辆车来完成配送任务。\[2\] 为了解决这个问题,可以使用遗传算法进行车辆路径规划。遗传算法是一种模拟自然进化过程的优化算法。在遗传算法中,可以设置一些参数来控制算法的行为,比如alpha、NIND、MAXGEN、Pc、Pm、GGAP等。其中,alpha是一个权重参数,NIND是种群大小,MAXGEN是最大迭代次数,Pc是交叉概率,Pm是变异概率,GGAP是代沟。\[3\] 通过使用遗传算法,可以找到最优的车辆路径规划方案,使得配送任务的总成本最小化。具体的算法实现可以根据问题的具体要求进行调整和优化。 #### 引用[.reference_title] - *1* [车辆路径问题VRPTW学习之一【开篇】](https://blog.csdn.net/sinat_41644416/article/details/82430567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于遗传算法车辆路径问题(VRP)](https://blog.csdn.net/weixin_57175976/article/details/118975654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值