当前位置: 首页 > 知识库问答 >
问题:

python爬虫 - Python爬虫WinError 10061连接拒绝问题?

左丘昕
2024-04-15

python爬虫时显示 [WinError 10061] 由于目标计算机积极拒绝,无法连接。

import csv
import random
import time

import pandas as pd

import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

class Spider(object):

def __init__(self):    pass@staticmethoddef get_data_and_save(city, year, month):    with open(f'{city}_数据.csv', 'w', encoding='utf-8', newline='') as f:        csv_writer = csv.writer(f)        csv_writer.writerow(            ['日期', '质量等级', 'AQI指数', '当天AQI排名', 'PM2.5', 'PM10', 'So2', 'No2', 'Co', 'O3'])        if month < 10:            url = f'https://tianqihoubao.com/aqi/{city}-{year}0{month}.html'        else:            url = f'https://tianqihoubao.com/aqi/{city}-{year}{month}.html'        res = requests.get(url, verify=True).text        soup = BeautifulSoup(res, 'html.parser')        for attr in soup.find_all('tr')[1:]:            one_day_data = list()            for index in range(0, 10):                one_day_data.append(attr.find_all('td')[index].get_text().strip())            csv_writer.writerow(one_day_data)def crawl_air_quality(self, years, months, cities):    for city in cities:        for year in years:            for month in months:                self.get_data_and_save(city, year, month)                time.sleep(2 + random.random())                print(city, year, month)

if name == '__main__':

spider = Spider()# 获取数据,保存数据spider.crawl_air_quality([2022], [1, 2, 3], ['beijing', 'shanghai', 'guangzhou'])

共有1个答案

章琛
2024-04-15

WinError 10061 错误通常表示你的程序试图连接到的服务器拒绝了你的连接请求。这可能是由几个原因造成的:

  1. 服务器没有运行:你试图连接的服务器可能没有运行,或者正在运行但是没有在你试图连接的端口上监听。
  2. 防火墙或安全组设置:可能是你的防火墙或者云服务提供商的安全组设置阻止了你的连接请求。
  3. 错误的URL或端口:你可能正在试图连接到一个错误的URL或端口。

针对你的代码和错误,你可以尝试以下几种解决方法:

  • 检查URL是否正确:首先,确认你试图连接的URL是否正确。你可以尝试在浏览器中打开这个URL,看看是否能正常访问。
  • 检查服务器状态:如果URL是正确的,那么可能是服务器没有运行或者没有在正确的端口上监听。你可以尝试联系服务器的管理员或者提供者,确认服务器的状态。
  • 检查防火墙和安全组设置:如果服务器状态正常,那么可能是你的防火墙或者安全组设置阻止了你的连接请求。你需要检查你的防火墙设置,或者联系你的云服务提供商,确认你的IP地址和端口是否被允许访问服务器。
  • 增加异常处理:在你的代码中,你可以增加异常处理来捕获这个错误,并打印更多的信息来帮助你调试。例如:
try:    res = requests.get(url, verify=True).textexcept requests.exceptions.ConnectionError as e:    print(f"ConnectionError: {e}")    continue

这样,当连接错误发生时,你可以看到更详细的错误信息,有助于你找到问题的原因。

 类似资料:
  • 原始content: decode('utf-8')报错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 1: invalid continuation byte decode('utf-8', 'ignore'): decode('gbk', 'ignore'): decode('utf-16', 'ig

  • python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。

  • 有的时候,当我们的爬虫程序完成了,并且在本地测试也没有问题,爬取了一段时间之后突然就发现报错无法抓取页面内容了。这个时候,我们很有可能是遇到了网站的反爬虫拦截。 我们知道,网站一方面想要爬虫爬取网站,比如让搜索引擎爬虫去爬取网站的内容,来增加网站的搜索排名。另一方面,由于网站的服务器资源有限,过多的非真实的用户对网站的大量访问,会增加运营成本和服务器负担。 因此,有些网站会设置一些反爬虫的措施。我

  • 本文向大家介绍Python反爬虫伪装浏览器进行爬虫,包括了Python反爬虫伪装浏览器进行爬虫的使用技巧和注意事项,需要的朋友参考一下 对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作 简单的直接添加请求头,将浏览器的信息在请求数据时传入: 打开浏览器--打开开发者模式--请求任意网站 如下图:找到请求的的名字,打

  • 主要内容:Scrapy下载安装,创建Scrapy爬虫项目,Scrapy爬虫工作流程,settings配置文件Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架,该框架使用纯 Python 语言编写。Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等。 提示:Twisted 是一个基于事件驱动的网络引擎框架,同样采用 Python 实现。 Scrapy下载安装 Scrapy 支持常见的主流平台,比如 Linux、Mac、Windows 等,因此你可以很方便的安装它

  • 主要内容:多线程使用流程,Queue队列模型,多线程爬虫案例网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 IO 以及本地磁盘 IO 操作,这些都会消耗大量的时间,从而降低程序的执行效率,而 Python 提供的多线程能够在一定程度上提升 IO 密集型程序的执行效率。 如果想学习 Python 多进程、多线程以及 Python GIL 全局解释器锁的相关知识,可参考《Python并发编程教程》。 多线程使用流程 Python 提供了两个支持多线