Scrapy Crawled (200) <GET http://www.baidu.com/> (referer: None)错误及解决办法

本文介绍了解决Scrapy框架中因未配置User-Agent而导致的错误方法。通过取消settings.py文件中相关行的注释并设置User-Agent字段,可以使爬虫正常获取网页源码。

如下图所示,此错误是建立在scrapy框架建立起来的情况下,如图所示,图片左侧是scrapy框架项目结构,出现标题的错误,首先点击如图所示的settings.py文件,找到第40行,如图所示我已经框出来了,这两行刚打开文件时注释的,把这两行注释解开,并且添加"user-agent"字段,这个字段可以在浏览器里面获取,详细就不介绍了,可以自行百度,然后再次运行项目,就可以发现获取到网络的源码了.

 

【为什么学爬虫?】        1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!        2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是:网络请求:模拟浏览器的行为从网上抓取数据。数据解析:将请求下来的数据进行过滤,提取我们想要的数据。数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是:爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求!【课程服务】 专属付费社群+定期答疑
PS D:\Experience\Myproject> scrapy crawl demo 2025-08-15 17:13:25 [scrapy.utils.log] INFO: Scrapy 2.13.3 started (bot: Myproject) 2025-08-15 17:13:25 [scrapy.utils.log] INFO: Versions: {'lxml': '6.0.0', 'libxml2': '2.11.9', 'cssselect': '1.3.0', 'parsel': '1.10.0', 'w3lib': '2.3.1', 'Twisted': '25.5.0', 'Python': '3.11.7 (tags/v3.11.7:fa7a6f2, Dec 4 2023, 19:24:49) [MSC v.1937 ' '64 bit (AMD64)]', 'pyOpenSSL': '25.1.0 (OpenSSL 3.5.1 1 Jul 2025)', 'cryptography': '45.0.5', 'Platform': 'Windows-10-10.0.26100-SP0'} 2025-08-15 17:13:25 [scrapy.addons] INFO: Enabled addons: [] 2025-08-15 17:13:25 [asyncio] DEBUG: Using selector: SelectSelector 2025-08-15 17:13:25 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2025-08-15 17:13:25 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.windows_events._WindowsSelectorEventLoop 2025-08-15 17:13:25 [scrapy.extensions.telnet] INFO: Telnet Password: 1dd24e6825bb9258 2025-08-15 17:13:25 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.logstats.LogStats'] 2025-08-15 17:13:25 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'Myproject', 'CONCURRENT_REQUESTS_PER_DOMAIN': 1, 'DOWNLOAD_DELAY': 1, 'FEED_EXPORT_ENCODING': 'utf-8', 'NEWSPIDER_MODULE': 'Myproject.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['Myproject.spiders']} 2025-08-15 17:13:26 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware', 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2025-08-15 17:13:26 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.start.StartSpiderMiddleware', 'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2025-08-15 17:13:26 [scrapy.middleware] INFO: Enabled item pipelines: [] 2025-08-15 17:13:26 [scrapy.core.engine] INFO: Spider opened 2025-08-15 17:13:26 [py.warnings] WARNING: C:\Users\lihon\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\core\spidermw.py:433: ScrapyDeprecationWarning: Myproject.spiders.demo_spider.DemoSpider defines the deprecated start_requests() method. start_requests() has been deprecated in favor of a new method, start(), to support asynchronous code execution. start_requests() will stop being called in a future version of Scrapy. If you use Scrapy 2.13 or higher only, replace start_requests() with start(); note that start() is a coroutine (async def). If you need to maintain compatibility with lower Scrapy versions, when overriding start_requests() in a spider class, override start() as well; you can use super() to reuse the inherited start() implementation without copy-pasting. See the release notes of Scrapy 2.13 for details: https://docs.scrapy.org/en/2.13/news.html warn( 2025-08-15 17:13:26 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2025-08-15 17:13:26 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 2025-08-15 17:13:27 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://quotes.toscrape.com/robots.txt> (referer: None) 2025-08-15 17:13:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://quotes.toscrape.com> (referer: None) 2025-08-15 17:13:28 [scrapy.core.engine] INFO: Closing spider (finished) 2025-08-15 17:13:28 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 450, 'downloader/request_count': 2, 'downloader/request_method_count/GET': 2, 'downloader/response_bytes': 11514, 'downloader/response_count': 2, 'downloader/response_status_count/200': 1, 'downloader/response_status_count/404': 1, 'elapsed_time_seconds': 1.894587, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2025, 8, 15, 9, 13, 28, 698500, tzinfo=datetime.timezone.utc), 'items_per_minute': 0.0, 'log_count/DEBUG': 5, 'log_count/INFO': 10, 'log_count/WARNING': 1, 'response_received_count': 2, 'responses_per_minute': 120.0, 'robotstxt/request_count': 1, 'robotstxt/response_count': 1, 'robotstxt/response_status_count/404': 1, 'scheduler/dequeued': 1, 'scheduler/dequeued/memory': 1, 'scheduler/enqueued': 1, 'scheduler/enqueued/memory': 1, 'start_time': datetime.datetime(2025, 8, 15, 9, 13, 26, 803913, tzinfo=datetime.timezone.utc)} 2025-08-15 17:13:28 [scrapy.core.engine] INFO: Spider closed (finished) PS D:\Experience\Myproject>
08-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Znovko

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值