博客
关于我
Python scrapy 常见问题及解决 【遇到的坑】
阅读量:798 次
发布时间:2023-03-06

本文共 895 字,大约阅读时间需要 2 分钟。

Scrapy 爬虫设置解析

  • Robot.txt 禁止爬取解决方法
  • 默认情况下,Scrapy 会遵守 Robot.txt 文件的规则。在爬取过程中,会自动请求站点的 Robot.txt 文件,检查爬取权限。为了避开此限制,可以在 setting.py 中将 ROBOTSTXT_OBEY 设为 False。

    原因:这样做可以让 Scrapy 忽略 Robot.txt 文件的限制,实现无限制的爬取。

    需要注意的是,Robot.txt 文件中通常会规定爬虫的 User-agent 和爬取路径。例如:

    User-agent: *Disallow: /

    默认情况下,Scrapy 会自动发送请求头,包含 User-agent 信息。通过设置 ROBOTSTXT_OBEY 为 False,可以绕过这些限制。

    1. 同时获取数据及保存
    2. 在 Scrapy 中,处理 AJAX 请求和普通页面请求的同时保存数据,可以使用 FormRequest 生成 POST 请求。

      解决方法:使用 yield scrapy.FormRequest(url, formdata, callback) 语句发送 POST 请求。

      注意事项:formdata 参数必须是 unicode、str 或 bytes object,不能是整数类型。

      1. 自动创建 create_time 字段
      2. 在你的数据模型中,可以将 create_time 字段设置为 timestamp 类型,并设置 default 值为 CURRENT_TIMESTAMP。

        这样,数据库会自动为新记录生成当前时间的 create_time 值。

        1. MySQL 表 id 重新从 1 开始
        2. 如果需要清空表并让 id 重新从 1 开始,可以执行 truncate table 命令。

          truncate table table_name

          这样操作后,表内的数据会被清空,id 字段会重新从 1 开始。

          注:truncate 操作会永久删除所有数据,请谨慎使用。

          转载来源:https://www.cnblogs.com/littlebob/p/9462587.html

    你可能感兴趣的文章