真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

怎么用Python制作一個每天新聞熱點

這篇文章主要講解了“怎么用Python制作一個每天新聞熱點”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Python制作一個每天新聞熱點”吧!

從網站建設到定制行業(yè)解決方案,為提供網站制作、做網站服務體系,各種行業(yè)企業(yè)客戶提供網站建設解決方案,助力業(yè)務快速發(fā)展。創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質的建站服務。

基本開發(fā)環(huán)境

  • Python 3.6

  • Pycharm

import parsel
import requests
import re

目標網頁分析

怎么用Python制作一個每天新聞熱點


今天就爬取新聞網中的國際新聞欄目

怎么用Python制作一個每天新聞熱點


可以看到相關的數據接口,里面有新聞標題以及新聞詳情的url地址

如何提取url地址

1、轉成json,鍵值對取值;
2、用正則表達式匹配url地址;

兩種方法都可以實現(xiàn),看個人喜好

根據接口數據鏈接中的pager 變化進行翻頁,其對應的就是頁碼。


詳情頁可以看到新聞內容都是在 div標簽里面 p 標簽內,按照正常的解析網站即可獲取新聞內容。

保存方式

1、你可以保存txt文本形式
2、也可以保存成PDF形式

整體爬取思路總結

在欄目列表頁中,點擊更多新聞內容,獲取接口數據url

接口數據url中返回的數據內容中匹配新聞詳情頁url

使用常規(guī)解析網站操作(re、css、xpath)提取新聞內容

保存數據

代碼實現(xiàn)

獲取網頁源代碼

def get_html(html_url):
    """
    獲取網頁源代碼 response
    :param html_url: 網頁url地址
    :return: 網頁源代碼
    """
    response = requests.get(url=html_url, headers=headers)
    return response

獲取每篇新聞url地址

def get_page_url(html_data):
    """
    獲取每篇新聞url地址
    :param html_data: response.text
    :return:  每篇新聞的url地址
    """
    page_url_list = re.findall('"url":"(.*?)"', html_data)
    return page_url_list

文件保存命名不能含有特殊字符,需要對新聞標題進行處理

def file_name(name):
    """
    文件命名不能攜帶 特殊字符
    :param name:  新聞標題
    :return: 無特殊字符的標題
    """
    replace = re.compile(r'[\\\/\:\*\?\"\<\>\|]')
    new_name = re.sub(replace, '_', name)
    return new_name

保存數據

def download(content, title):
    """
    with open 保存新聞內容 txt
    :param content:  新聞內容
    :param title:   新聞標題
    :return:
    """
    path = '新聞\\' + title + '.txt'
    with open(path, mode='a', encoding='utf-8') as f:
        f.write(content)
        print('正在保存', title)

主函數

def main(url):
    """
    主函數
    :param url:  新聞列表頁 url地址
    :return:
    """
    html_data = get_html(url).text   # 獲得接口數據response.text
    lis = get_page_url(html_data)   # 獲得新聞url地址列表
    for li in lis:
        page_data = get_html(li).content.decode('utf-8', 'ignore')  # 新聞詳情頁 response.text
        selector = parsel.Selector(page_data)
        title = re.findall('(.*?)', page_data, re.S)[0]  # 獲取新聞標題
        new_title = file_name(title)
        new_data = selector.css('#cont_1_1_2 div.left_zw p::text').getall()
        content = ''.join(new_data)
        download(content, new_title)


if __name__ == '__main__':
    for page in range(1, 101):
        url_1 = 'https://channel.chinanews.com/cns/cjs/gj.shtml?pager={}&pagenum=9&t=5_58'.format(page)
        main(url_1)

運行效果圖

怎么用Python制作一個每天新聞熱點

怎么用Python制作一個每天新聞熱點

感謝各位的閱讀,以上就是“怎么用Python制作一個每天新聞熱點”的內容了,經過本文的學習后,相信大家對怎么用Python制作一個每天新聞熱點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!


本文題目:怎么用Python制作一個每天新聞熱點
文章出自:http://weahome.cn/article/pjpsjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部