2020-07-21

import requests, bs4, re
from pyquery import PyQuery as pq
import  time
import os
import datetime
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.9 Safari/537.36'}
No=1  #文档编号

# 封装一个获取新闻内容网址和新闻标题的函数
def index():
    url = 'https://it.sohu.com/?spm=smpc.news-home.header.9.1595315935541HkUEZX9'
    r = requests.get(url, headers=headers,).text
    doc = pq(r)
    a = doc("#main-container > div.z-main-1.clear > div.z-main-1_mid").items('a')
    print("a",a)
    for x in a:
        time.sleep(1)
        print("x", x)
        href = x.attr("href")
        if href.startswith("http")==True:
            pass
        else:
            href = "https:"+x.attr("href")
        print("href",href)
        title = x.text()
        print(title)
        get_news(href, title)

# 封装一个获取内嵌链接地址新闻内容的函数
def get_news(href,title):
    global No  # 声明函数中使用的No是全局变量
    response = requests.get(href,headers=headers).text
    # 数据初始化
    doc =pq(response)
    # 通过类选择器news_txt提取新闻内容
    news = doc(".article").items()
    # 遍历数据
    for x in news:
        # 取出数据中的文本数据,获取到新闻信息
        new = x.text()
        print(new)
    #
        # 获取今日日期,并转换为字符串的形式。以此日期命名建立文件路径
        date = datetime.datetime.now().strftime('%Y-%m-%d') + "搜狐科技新闻" + "//"
        # 判断是否存在此文件夹
        folder = os.path.exists(date)
        # 如果不存在就新建该文件夹
        if not folder:
            os.makedirs(date)
        title=validateTitle(title)
        title=str(No)+"_"+title
        # 打开date文件夹.以"a"追加的方式,编码为"utf-8"保存为txt文件.
        with open(date + "{}.txt".format(title), "a", encoding="utf-8") as f:
            # 将获取到的新闻数据写入
            f.write(new)
            # 关闭读写
            f.close()
        No+=1
#保存文件时候, 去除名字中的非法字符
def validateTitle(title):
    rstr = r"[\/\\\:\*\?\"\<\>\|]"  # '/ \ : * ? " < > |'
    new_title = re.sub(rstr, "_", title)  # 替换为下划线
    return new_title
if __name__ == '__main__':
    index()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容