鱼C论坛

 找回密码
 立即注册
查看: 224|回复: 5

[已解决]python爬虫台湾新闻网站

[复制链接]
发表于 2024-10-17 21:06:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在重现一个爬虫台湾新闻网站的项目,在运行这个项目时,我使用了代理将ip改为台湾,但程序仍说无法访问对应的新闻网站网址
我将网址直接复制到浏览器中是可以访问的

程序log如下:

2024-10-17 20:47:57 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://udn.com/robots.txt> (failed 3 times): User timeout caused connection failure: Getting https://udn.com/robots.txt took longer than 180.0 seconds..
2024-10-17 20:47:57 [scrapy.downloadermiddlewares.robotstxt] ERROR: Error downloading <GET https://udn.com/robots.txt>: User timeout caused connection failure: Getting https://udn.com/robots.txt took longer than 180.0 seconds..
    raise TimeoutError(f"Getting {url} took longer than {timeout} seconds.")
twisted.internet.error.TimeoutError: User timeout caused connection failure: Getting https://udn.com/robots.txt took longer than 180.0 seconds..

最佳答案
2024-10-17 21:06:35
根据您提供的日志信息,问题可能与以下几点有关:

1. **代理设置问题**:虽然您使用了代理,但它可能没有正确配置或性能较差。您可以验证代理是否有效,尝试其他台湾代理,或临时停用代理以查看问题是否得到解决。

2. **网络连接问题**:检查您的网络连接是否有问题。某些防火墙或网络设置可能导致长时间超时。

3. **请求头设置**:某些网站需要特定的请求头(如User-Agent)才能正常回应爬虫请求。可以尝试在请求中添加或修改User-Agent,以便模拟常见的浏览器行为。

4. **网站防爬机制**:网站可能有防爬虫的设置,导致访问频率过高时阻止请求。您可以尝试降低请求频率,或者在请求之间增加随机的延迟。

5. **Scrapy设置**:检查您的Scrapy爬虫配置,确保timeout和retry相关设置合理。例如,可以适当增加超时和重试次数。

尝试以上解决方案后观察是否有所改进,如果还有问题,请提供更多细节以便进一步诊断。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-10-17 21:06:35 | 显示全部楼层    本楼为最佳答案   
根据您提供的日志信息,问题可能与以下几点有关:

1. **代理设置问题**:虽然您使用了代理,但它可能没有正确配置或性能较差。您可以验证代理是否有效,尝试其他台湾代理,或临时停用代理以查看问题是否得到解决。

2. **网络连接问题**:检查您的网络连接是否有问题。某些防火墙或网络设置可能导致长时间超时。

3. **请求头设置**:某些网站需要特定的请求头(如User-Agent)才能正常回应爬虫请求。可以尝试在请求中添加或修改User-Agent,以便模拟常见的浏览器行为。

4. **网站防爬机制**:网站可能有防爬虫的设置,导致访问频率过高时阻止请求。您可以尝试降低请求频率,或者在请求之间增加随机的延迟。

5. **Scrapy设置**:检查您的Scrapy爬虫配置,确保timeout和retry相关设置合理。例如,可以适当增加超时和重试次数。

尝试以上解决方案后观察是否有所改进,如果还有问题,请提供更多细节以便进一步诊断。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-10-23 16:59:32 | 显示全部楼层
更新:
已经能爬虫到部分数据存入数据库中,但log文件中还是会显示访问网站超时
并且并不是每个网站都能爬到数据,十个网站中大概有两个网站能爬到十多条,还有两个网站能爬到几条
剩下的几个网站在爬到的数据中并没有看见相关的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-10-23 17:04:08 | 显示全部楼层
pangforFC 发表于 2024-10-23 16:59
更新:
已经能爬虫到部分数据存入数据库中,但log文 ...


针对您的新情况,这里有几个建议:

1. **提高抓取效率**:
   - 减少并发请求数量,以降低被目标网站拒绝的可能性。
   - 增加请求间的延迟,模拟人类浏览行为。

2. **健壮性处理**:
   - 增加错误处理和重试机制,确保在超时时有机会重新请求。

3. **检查数据提取逻辑**:
   - 确保提取规则(如XPath、CSS选择器)适用于目标网站的当前结构。
   - 使用调试工具检查每个网站的HTML结构以优化选择器。

4. **网络环境优化**:
   - 使用稳定的代理服务,并定期更换代理IP以规避被封锁。

5. **请求头设置**:
   - 设置合适的User-Agent以及常见的请求头,模拟真实用户请求。

6. **日志分析**:
   - 仔细分析日志文件,检查失败的具体原因(如状态码、超时等),并针对性改进。

尝试以上建议,查看是否能提高爬虫的成功率。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-20 16:44:00 | 显示全部楼层
pangforFC 发表于 2024-10-23 16:59
更新:
已经能爬虫到部分数据存入数据库中,但log文件中还是会显示访问网站超时
并且并不是每个网站都能 ...

更更新:
已经解决这个问题,原因可能是网站前端代码已经发生变化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-20 16:44:13 | 显示全部楼层
pangforFC 发表于 2024-11-20 16:44
更更新:
已经解决这个问题,原因可能是网站前端代码 ...


很好,能够解决问题是最重要的!前端代码的变化确实常常会影响到爬虫的正常运行。因此,在做爬虫项目时,定期检查和更新代码以适应网站的变化是十分必要的。以下是一些建议,以避免类似问题再次发生:

1. **定期监控网站变化**:监控目标网站的结构变化,及时更新爬虫逻辑。

2. **使用动态解析工具**:对于前端变化较快的网站,考虑使用Selenium或Puppeteer等工具来处理动态加载内容。

3. **添加自动化测试**:为爬虫添加自动化测试,以便快速发现和修复因网站变化导致的错误。

4. **增加代码的可维护性**:将选择器和抓取逻辑模块化,使其更容易更新和调试。

保持代码的灵活性以及密切关注目标网站的变化,您将能够更加有效地应对类似问题。祝您今后的爬虫项目顺利!如果还有其他问题,欢迎随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表