python爬虫和用腾讯云API接口进行翻译并存入excel,通过本机的Windows任务计划程序定时运行Python脚本!

news2024/11/16 4:39:31

项目场景:

提示:这里简述项目相关背景:定时爬取外网的某个页面,并将需要的部分翻译为中文存入excel

接下了的,没学过的最好看一下

基本爬虫的学习

【爬虫】requests 结合 BeautifulSoup抓取网页数据_requests beautifulsoup 在界面中选取要抓取的元素-CSDN博客

问题描述 一:

提示:这里描述项目中遇到的问题:

基本爬虫的学习的例子为例,换到你自己想要的url 运行不了 

 原因分析 一:

程序使用一段时间后会遇到HTTP Error 403: Forbidden错误。 因为在短时间内直接使用Get获取大量数据,会被服务器认为在对它进行攻击,所以拒绝我们的请求,自动把电脑IP封了。 

 解决方案 一:

我就不细讲了,看懂别人的就行:

python 爬虫禁止访问解决方法(403)_爬虫加了请求头还是403错误-CSDN博客

  我的是这样的

import random
import time


import requests
from bs4 import BeautifulSoup

url = "https://pubmed.ncbi.nlm.nih.gov/"

# List of user-agent strings
my_headers = [
    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14",
    "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
    "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",
    "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
]

try:
    with requests.Session() as session:
        t = 0.1
        time.sleep(t)

        # 随机从列表中选择IP、Header
        #proxy = random.choice(proxy_list)
        header = random.choice(my_headers)
        headers = {"User-Agent": header}
        response = session.get(url, headers=headers)
        response.raise_for_status()  # Raises HTTPError for bad responses
        print(f"Response status using {header}: {response.status_code}")
        #print(response.content)  # 打印网页内容
        # 使用BeautifulSoup解析HTML内容
        soup = BeautifulSoup(response.content, 'html.parser')

        # Extract information from each 'li' element within 'items-list'
        paper_items = soup.select('ul.items-list li.full-docsum')
        for item in paper_items:
            paper_link = item.find('a')['href']  # Extract href attribute from <a> tag
            paper_title = item.find('a').text.strip()  # Extract text from <a> tag
            print(f"论文标题: {paper_title}")
            print(f"链接: {url}{paper_link}")
            print()
        # for header in my_headers:
        #     headers = {"User-Agent": header}
        #     response = session.get(url, headers=headers)
        #     response.raise_for_status()  # Raises HTTPError for bad responses
        #     print(f"Response status using {header}: {response.status_code}")

except requests.exceptions.HTTPError as errh:
    print(f"HTTP error occurred: {errh}")
except requests.exceptions.RequestException as err:
    print(f"Request error occurred: {err}")

问题描述 二:

使用python自带的translate 超多问题,又慢又多个单词组成的翻译不准确,且不到10次就崩了,

 解决方案  二:

东西给家人们找好了,就学吧

【笔记】Python3|(一)用 Python 翻译文本的教程、代码与测试结果(第三方库 translate 和 腾讯 API 篇)_python调用有道翻译-CSDN博客

python实现调用腾讯云翻译API_腾讯翻译api怎么获取-CSDN博客

怎么存入ecxel  可以让 Al (gpt)帮你写

 上面实现 完整代码

写自己的腾讯云 SecretId 和 SecretKey 还有 url   

其中 从页面要获取的html源代码 放到Al (gtp)  让他帮你修改代码就行   不要直接用我的  

from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tmt.v20180321 import tmt_client, models

SecretId = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
SecretKey = "xxxxxxxxxxxxxxxxxxxxxxxxx"

import random
import time
import pandas as pd
from requests.exceptions import RequestException
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook

url = "https://pubmed.ncbi.nlm.nih.gov/"
my_headers = [
    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14",
    "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
    "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",
    "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0"
]


class Translator:
    def __init__(self, from_lang, to_lang):
        self.from_lang = from_lang
        self.to_lang = to_lang

    def translate(self, text):
        try:
            cred = credential.Credential(SecretId, SecretKey)
            httpProfile = HttpProfile()
            httpProfile.endpoint = "tmt.tencentcloudapi.com"

            clientProfile = ClientProfile()
            clientProfile.httpProfile = httpProfile
            client = tmt_client.TmtClient(cred, "ap-beijing", clientProfile)

            req = models.TextTranslateRequest()
            req.SourceText = text
            req.Source = self.from_lang
            req.Target = self.to_lang
            req.ProjectId = 0

            resp = client.TextTranslate(req)
            return resp.TargetText

        except TencentCloudSDKException as err:
            return err


def fetch_and_translate_papers(url, headers):
    try:
        with requests.Session() as session:
            t = 0.1
            time.sleep(t)
            translator = Translator(from_lang="en", to_lang="zh")
            header = random.choice(headers)
            headers = {"User-Agent": header}
            response = session.get(url, headers=headers)
            response.raise_for_status()
            print(f"Response status using {header}: {response.status_code}")

            soup = BeautifulSoup(response.content, 'html.parser')

            # Prepare data to store in DataFrame
            data = []

            paper_items = soup.select('ul.items-list li.full-docsum')
            for item in paper_items:
                paper_link = item.find('a')['href']  # Extract href attribute from <a> tag
                paper_title = item.find('a').text.strip()  # Extract text from <a> tag
                chinese_paper_title = translator.translate(paper_title)
                print(f"Paper Title: {paper_title}")
                print(f"论文标题: {chinese_paper_title}")
                print(f"链接: {url}{paper_link}")
                print()
                data.append({
                    'Paper Title': paper_title,
                    '论文标题': chinese_paper_title,
                    '链接': f"{url}{paper_link}",
                })

            # Create a DataFrame
            df = pd.DataFrame(data)

            # Save to Excel
            file_name = 'pubmed.xlsx'
            df.to_excel(file_name, index=False, engine='openpyxl')
            print(f"Data saved to {file_name}")

    except RequestException as e:
        print(f"Error fetching {url}: {e}")


# Call the function
fetch_and_translate_papers(url, my_headers)

让 al 修改的是这段

paper_items = soup.select('ul.items-list li.full-docsum')
            for item in paper_items:
                paper_link = item.find('a')['href']  # Extract href attribute from <a> tag
                paper_title = item.find('a').text.strip()  # Extract text from <a> tag
                chinese_paper_title = translator.translate(paper_title)
                print(f"Paper Title: {paper_title}")
                print(f"论文标题: {chinese_paper_title}")
                print(f"链接: {url}{paper_link}")
                print()
                data.append({
                    'Paper Title': paper_title,
                    '论文标题': chinese_paper_title,
                    '链接': f"{url}{paper_link}",
                })

从页面要获取的html源代码  这个也要教吗 懒了呀

就是你要爬的页面 在页面鼠标 右键源代码

 

 把你要爬的 html源代码 放al 让他办你改

问题描述 三:

怎么在自己的电脑定时执行 这个代码泥

解决方案 三:

东西也给家人们找好了,学吧,人懒不想总结太多了

 【Python】使用Windows任务计划程序定时运行Python脚本!-CSDN博客

 之后 要进行修改时间的可以看这个

 win10下设置定时任务,间隔每/分钟 - Acezhang - 博客园 (cnblogs.com)

 到最后有一点 小问题 :

原因应该就是上面图片的没填  问题不大。 windows解决任务计划程序出错一个或多个指定的参数无效_计划任务一个或多个指定的参数无效-CSDN博客

 其中 管理员的单词懂吧选那个

人麻了  要定时还是有很多问题的

你的bat(脚本) 要运得了才可以  点击bat 如果闪退 就是不成功  

家人们 内容有点多 更多是自己去看别人的内容,我用了一天半完成的 不急慢慢来 

  居然没有打赏功能 可怜我写了半天 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1910022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio 安装Python 环境

前言 我在使用Visual Studio作为Python工具的时候&#xff0c;碰到了一些环境问题和依赖包安装问题&#xff0c;现将问题和方法总结出来&#xff0c;供大家学习和参考。 一、Python 安装 Python官网&#xff1a; Welcome to Python.org 可以下载左侧的稳定发布版本 下载完成之…

昇思25天学习打卡营第21天 | Diffusion扩散模型

内容介绍&#xff1a; 扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;本文的介绍是基于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;&#xff0c;DDPM已经在&#xff08;无&#xff09;条件图像/音频/视频生成领域取得…

The Quinfall昆法尔卡顿延迟高怎么办?快速降低昆法尔延迟

The Quinfall昆法尔中&#xff0c;玩家可以选择数十种不同的职业&#xff0c;体验从战士到法师&#xff0c;从猎人到工匠的丰富人生。每个职业都有其独特的技能和装备&#xff0c;玩家可以根据自己的喜好和游戏风格来自由搭配。而游戏中的战斗系统更是丰富多彩&#xff0c;无论…

【深度学习实战(44)】Anchor based and Anchor free(无锚VS有锚)

1 anchor-based 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题。在单阶段检测器中&#xff0c;这些候选区域就是通过滑窗方式产生的 anchor&#xff1b;在两阶段检测器中&#xff0c;候选区域是 RPN 生成的 proposal&#xff0c;但是 RPN 本身仍然是对滑窗…

gen_cross_contour_xld 为每个输入点生成一个十字形状的XLD轮廓。

gen_cross_contour_xld Name 名称 gen_cross_contour_xld — Generate one XLD contour in the shape of a cross for each input point. 为每个输入点生成一个十字形状的XLD轮廓。 Signature 签名 gen_cross_contour_xld( : Cross : Row, Col, Size, Angle : ) Descripti…

SQL创建一个actor_name表

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 对于如下表ac…

微信投票小程序源码系统 带礼物功能 完整的源代码包以及搭建部署教程

系统概述 随着移动互联网的快速发展&#xff0c;微信小程序以其便捷性、轻量化及强大的社交属性&#xff0c;已成为众多企业和个人进行品牌宣传、活动推广的重要工具。其中&#xff0c;微信投票小程序更是因其独特的互动性和参与感&#xff0c;深受用户喜爱。然而&#xff0c;…

matlab 花瓣线绘制

matlab 花瓣线绘制 clc,clear,close all; % 创建一个范围内的 x 和 y 值 x linspace(-1.5, 1.5, 100); y linspace(-1.5, 1.5, 100);% 创建一个网格来表示 x 和 y 值的组合 [X, Y] meshgrid(x, y);% 计算方程的左边和右边的值 LHS1 X.^2 Y.^2; RHS1 X.^4 Y.^4;LHS2 X.…

内网信息收集:手动、脚本和工具查IP、端口

1.手动查IP和端口 2.工具查IP 3.工具查端口 我们在内网中拿下目标机器后&#xff0c;需要进行一系列的信息收集&#xff0c;以下为总结的收集方法 1.手动信息收集&#xff1a; 以下命令在CS执行时命令前须加shell,如&#xff1a;shell ipconfig 1.收集IP网卡&#xff1a; ip…

node-gyp 重新安装,解决编译遇到的问题【超详细图解】

一、报错信息 npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp10.0.1 npm ERR! gyp info using node18.19.0 | darwin | arm64 npm ERR! gyp info find Python using Python version 3.12.2 found at "/opt/homebrew/opt/python3.12/…

js实现移动蒙版层

移动蒙版层 可在整个页面拖动方块&#xff0c;但方块不能超出页面 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作。OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它提供了各种视觉处理函数&#xff0c;并…

Linux 创建新虚拟机的全过程图解

一、创建新虚拟机 1.选择自定义 2.直接下一步 3.选择稍后安装 4.设置虚拟机名和安装位置 5.配置处理器&#xff08;处理器数量&#xff1a;4、每个处理器的内核&#xff1a;2&#xff09; 6. 内存选择 7.网络类型 8. IO控制器类型-默认推荐 9.磁盘类型-默认推荐 10.选择虚拟磁…

xcode中对项目或者文件文件夹重命名操作

提起揭秘答案&#xff1a;选中文件后&#xff0c;按下回车键就可以了 如果在项目中对新建的文件夹或者文件名称不满意或者输入错误了&#xff0c;想要修改一下名称该怎么办&#xff1f;如果是在文件或文件夹上右键是没有rename选项的&#xff1a; 其实想要重命名&#xff0c;很…

minicoda python环境搭建-cnblog

anconnda精简版miniconda使用 Python和anconnda介绍 关于Python环境最出名的是Python和anconnda,Anconnda强的地方时anconnda不用每创建一个新项目&#xff0c;就配置一下虚拟环境。只需要创建一个Python环境包&#xff0c;电脑全局是通用的。但是Anconnda本身安装包大小就有一…

【Linux线程篇】探索Linux多线程:并行编程的入门指南

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; Linux线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行&am…

YOLO-World实时开集检测论文阅读

论文&#xff1a;《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代码&#xff1a;https://github.com/AILab-CVC/YOLO-World 1.Abstract 我们介绍了YOLO World&#xff0c;这是一种创新的方法&#xff0c;通过在大规模数据集上进行视觉语言建模和预训练&#…

Alpha 3D扫描仪

3D视觉。就这么简单。 用于机器视觉任务的工业3D扫仪 规格表

k8s离线部署芋道源码前端

目录 概述 编译Dockerfile 构建Dockerfilenginx.conf构建 k8s部署前端镜像部署ingress 概述 本篇将对 k8s离线部署芋道源码前端 进行详细的说明&#xff0c;对如何构建 Dockerfile&#xff0c;如何整合 Nginx&#xff0c;如何整合 ingress 进行实践。 相关文章&#xff1a;naco…

热烈祝贺!全视通多家客户上榜全球自然指数TOP100!

2024年6月18日&#xff0c;全球医疗机构自然指数TOP100榜单发布&#xff0c;中国医疗机构在其中的表现尤为引人注目。 根据《自然》杂志网站发布的数据&#xff0c;此次公布的排名是基于&#xff08;2023年3月1日至2024年2月29日&#xff09;的统计数据&#xff0c;全球医疗机构…