众所周知,404 错误直接影响到我们网站的 SEO,因为这与 SEO 有关。...而子凡将分享一个技巧,通过该技巧,你可以通过允许 404 错误页面并且将其 301 重定向到主页或者其它网站页面来提高网站的 SEO 性能。...当然这里子凡举个实际中很常见的例子,当我们的网站做了域名改版后,当时又需要用到老域名重新来建站的时候,这时候如果用老玉米重新建新站,就可以利用 404 的方式做 301 重定向,这样就保证了老域名之前的改版...话不多说,因为子凡自己的所有服务器都是 Nginx 环境,所有以下就是适合 Nginx 环境 404 错误设置 301 跳转的方法。...当然也可以使用 302 临时重定向,只需要将代码中的 301 改为 302 即可。
在vue的项目开发完成之后,需要使用npm run build ?...在本地的dist静态目录打开 index.html进行访问的时候 会发现这样的一个问题 Request method 'GET' not supported ?...打开F12 查看报错 可以发现 在登录的这个请求上 原本的post请求,被重定向成get 请求了,所以才会报错 ?...那么 为什么在本地测试环境里面一些正常的项目 使用了npm run build:prod 打包之后 就会出现了问题哩?...带着这个疑问,我上网百度了一下 找到了原因 我在开发项目的时候使用到了反向代理,Nginx反向代理后Post请求自动转换为Get,虽然不知道是啥子原理,那总算是找到了问题所在了。
但这个时限超过了一个合理的自然值,就变得不那么正常了,比如四五十秒,一分多钟。 最奇葩的是,如此久的耗时居然不会报超时错误,而是拿到正确返回后将页面呈现了出来!...话不多说,切换到事件捕获页面,定位到出问题的请求,查看其详情。同时将该日志导出,永久保存!作为纪念,也方便以后再次导入查看。...当然能,让我们进入到Chromium的源码中去。 ERR_CONNECTION_RESET被唤起的地方 在Chromium的源码中搜索该常量名,确实出现很多结果。...所以我们定位到http_stream_parser.cc文件,同时注意到有一个文件叫net_errors_win.cc,所以猜测他是定义所有错误常量用的,也顺便打开之。...,注释耐人寻味,这个时候,这样的情景,能否正确解读注释成为了比读懂代码更重要(这是我在看JS代码时永远无法体味到的感觉),下面尽可能对它进行理解: 在尝试发送一个请求体的时候,让服务器尝试发送一个带错误的响应体
方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出的全部信息,输出到某个文件中 最常见的办法就是:make xxx > build_output.txt...此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。...2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息...C++ 例如: make 2> my_make_err.log 3.只需要把make输出中的正常(非错误,非警告)的信息输出到文件中,可以用: make xxx 1> build_output.txt...相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。
有的网站的反爬虫机制被触发了,它会自动将请求重定向到一个 xxx/404.html页面。那么如果发现了这种自动的重定向,就没有必要让这一次的请求返回的内容进入数据提取的逻辑,而应该直接丢掉或者重试。...由于middlewareSpider爬虫默认使用的是“今天”的日期,所以如果被网站返回了“参数错误”,那么正确的日期就必然是昨天的了。...此时,对于参数不正确的请求,网站会自动重定向到以下网址对应的页面: http://exercise.kingname.info/404.html 由于Scrapy自带网址自动去重机制,因此虽然第3页、第...对于这种情况,在重试中间件里面判断返回的网址即可解决,如下图12-21所示。 ? 在代码的第115行,判断是否被自动跳转到了404页面,或者是否被返回了“参数错误”。...如果都不是,说明这一次请求目前看起来正常,直接把response返回,交给后面的中间件来处理。如果被重定向到了404页面,或者被返回“参数错误”,那么进入重试的逻辑。
重定向与请求转发 1、重定向 介绍 写法(注意斜杠) a. 跳转到jsp页面: b. 跳转到servlet中的某个方法(mvc架构下) 举例: 2、请求转发 介绍 写法 a....跳转到servlet中的某个方法(mvc架构下) 举例 1、重定向 response.sendRedirect(); 介绍 重定向,也称客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应...") 举例: 1、重定向到servlet中的某个方法 ?...2、重定向到某个jsp页面 ?..., response); 举例 1、请求转发到某个jsp页面 ?
有的网站的反爬虫机制被触发了,它会自动将请求重定向到一个xxx/404.html页面。那么如果发现了这种自动的重定向,就没有必要让这一次的请求返回的内容进入数据提取的逻辑,而应该直接丢掉或者重试。...此时,对于参数不正确的请求,网站会自动重定向到以下网址对应的页面: http://exercise.kingname.info/404.html 由于Scrapy自带网址自动去重机制,因此虽然第3页、第...对于这种情况,在重试中间件里面判断返回的网址即可解决,如下图12-21所示。 ? 在代码的第115行,判断是否被自动跳转到了404页面,或者是否被返回了“参数错误”。...如果都不是,说明这一次请求目前看起来正常,直接把response返回,交给后面的中间件来处理。如果被重定向到了404页面,或者被返回“参数错误”,那么进入重试的逻辑。...当运行到yield scrapy.Request()或者yield item的时候,爬虫中间件的process_spider_output()方法被调用。
增加全局并发数: CONCURRENT_REQUESTS = 100 1.2 降低log级别 当进行通用爬取时,一般您所注意的仅仅是爬取的速率以及遇到的错误。...关闭重定向: REDIRECT_ENABLED = False scrapy反爬技巧 有些网站实现了特定的机制,以一定规则来避免被爬虫爬取。...例如免费的 Tor项目 或付费服务(ProxyMesh)。 使用高度分布式的下载器(downloader)来绕过禁止(ban),您就只需要专注分析处理页面。...自动调整scrapy来优化下载速度,使得用户不用调节下载延迟及并发请求数来找到优化的值。 用户只需指定允许的最大并发请求数,剩下的都交给扩展来完成。...系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
服务器的响应是302 FOUND(5),然后将我们重定向到新页面:/dynamic/gated。只有登录成功时才会出现此页面。...如果没有正确输入用户名和密码就前往http://localhost:9312/dynamic/gated,服务器会发现你作弊,并将你重定向到错误页面:http://localhost:9312/dynamic...总结一下,单单一个操作,如登录,可能涉及多个服务器往返操作,包括POST请求和HTTP重定向。Scrapy处理大多数这些操作是自动的,我们需要编写的代码很简单。...如果我们使用了错误的用户名和密码,我们将重定向到一个没有URL的页面,进程并将在这里结束,如下所示: $ scrapy crawl login INFO: Scrapy 1.0.3 started (bot...例如一些网站在执行POST请求时,需要通过从表单页面到登录页面传递某种形式的变量以确定cookies的启用,让你使用大量用户名和密码暴力破解时变得困难。 ?
还有Scrapy和Scrapy-redis框架让我们开发爬虫变得异常简单···· 关键词抽取 模拟:浏览器就是一个纯天然最原始的一个爬虫工具。...在爬取的url后跟robots.txt查看,百度示例: 开发工具和Chrome的安装 开发工具Anaconda和Pycharm的安装教学前面都有介绍到,Chrome安装也非常简单 ps:如果打不开说明被墙掉了...Sources: 整个网页所加载的所有文件。 Network: 查看整个网页发送的所有网络请求。一般我们想要去查看某个请求的信息,都可以到这个里面去看。...比如在访问www.jingdong.com的时候会重定向到www.jd.com。 302:临时重定向。比如在访问一个需要登录的页面的时候,而此时没有登录,那么就会重定向到登录页面。...400:请求的url在服务器上找不到。换句话说就是请求url错误。 403:服务器拒绝访问,权限不够。 500:服务器内部错误。可能是服务器出现bug了。
默认: 16 Scrapy downloader 并发请求(concurrent requests)的最大值。...默认:: {} 保存项目中启用的下载中间件及其顺序的字典 - DOWNLOAD_DELAY 默认: 0 下载器在下载同一个网站下一个页面前需要等待的时间。...可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG - LOG_STDOUT 默认: False 如果为 True ,进程所有的标准输出(及错误)将会被重定向到...) 该随机值降低了crawler被检测到(接着被block)的机会。...某些网站会分析请求, 查找请求之间时间的相似性 - REDIRECT_MAX_TIMES 默认: 20 定义request允许重定向的最大次数。
,把dont_filter置为True,该url会被反复抓取(url地址对应的内容会更新的情况) 一个全新的url地址被抓到的时候,构造request请求 url地址在start_urls中的时候,会入队...= 0 scrapy-redis实战京东图书 爬取结果截图 ? 页面分析 分析分类聚合页 打开待爬取页面: https://book.jd.com/booksort.html 如下图: ?...,我们可以爬取到分类下的书籍列表页,这个页面包含书籍的全部信息,同样是可以使用xpath解析出来的。...分析书籍列表页 通过分析列表页的请求,可以发下列表页的请求重定向到了一个新的链接,所以我们只需要分析新请求链接的响应即可,scrapy可以自动帮我们执行重定向的操作。 ?...页面重定向分析 分析书籍列表页,可以发现列表页除了价格字段外其余字段都可以在链接的响应中提取到。 ? 书籍列表页分析 所以我们只需要找到价格字段的请求,就可以爬取到书籍的全部字段了。
绝大多数的反反爬虫策略,大多有以下几种: 忽略robots.txt协议 添加随机请求头,如cookie、user-agent等 sleep休眠 控制并发请求数、设置页面下载延迟 验证码识别(靠谱) 使用...两个网站的网页结构不尽相同,好在需要及提取出的最终数据基本保持了一致,出于两个网站不同的反爬策略和请求配置(settings.py),因此对应实际的情况是两个Scrapy项目。...Cookie是必须要加的,否则会重定向到登录页面;在未使用ip代理的情况下,并发数不宜设置过大,亲测是直接封了IP......控制并发请求数、下载延迟 # 这么慢还是被限制......CONCURRENT_REQUESTS = 1 DOWNLOAD_DELAY = 5 加入验证码识别 事实上,这种情况下限制后是被重定向到一个验证码页面。
Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎 Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的...# LOG_ENABLED=True # 默认: 'utf-8',logging使用的编码。 # LOG_ENCODING='utf-8' # 它是利用它的日志信息可以被格式化的字符串。...3.X的不能用 # SCHEDULER_SERIALIZER = "scrapy_redis.picklecompat" # 使用优先级调度请求队列 (默认使用), # 使用Scrapy-Redis的从请求集合中取出请求的方式...#不清除Redis队列、这样可以暂停/恢复 爬取, # 允许暂停,redis请求记录不会丢失(重启爬虫不会重头爬取已爬过的页面) #SCHEDULER_PERSIST = True #---------...开启此选项urls必须通过sadd添加,否则会出现类型错误。
对于ajax请求传递的参数,如果是get请求,参数传递中文,在有些浏览器会乱码 不同的浏览器对参数编码的处理方式不同,所以对于get请求的参数需要使用 encodeURIComponent函数对参数进行编码处理... 于post请求不需要进行编码 AJAX请求总共有多少种CALLBACK 总共有八种Callback onSuccess、onFailure、onUninitialized、onLoading... onLoaded、onInteractive、onComplete、onException 拿到数据怎么区分是ajax还是jsonp ajax: {} jsonp:fn({}) ajax的数据...jsonp不能用,jsonp的数据ajax是可以用的 jsonp本质是通过URL的方式进行请求的,所以它是get方式请求,没有post
,把dont_filter置为True,该url会被反复抓取(url地址对应的内容会更新的情况) 一个全新的url地址被抓到的时候,构造request请求 url地址在start_urls中的时候,会入队...= 0 scrapy-redis实战京东图书 爬取结果截图 页面分析 分析分类聚合页 打开待爬取页面: https://book.jd.com/booksort.html 如下图: 分析分类聚合页...,我们可以爬取到分类下的书籍列表页,这个页面包含书籍的全部信息,同样是可以使用xpath解析出来的。...分析书籍列表页 通过分析列表页的请求,可以发下列表页的请求重定向到了一个新的链接,所以我们只需要分析新请求链接的响应即可,scrapy可以自动帮我们执行重定向的操作。...页面重定向分析 分析书籍列表页,可以发现列表页除了价格字段外其余字段都可以在链接的响应中提取到。 书籍列表页分析 所以我们只需要找到价格字段的请求,就可以爬取到书籍的全部字段了。
除非进行设定,输出会一直持续到发生标准错误,将LOG_ENABLED设定为False,就不会这样了。...你可能会觉得这个设置没什么用,因为每个页面通常只有一个抓取项。它的默认值是100。如果降低到,例如10或1,你可能会觉得性能提升了,取决于每次请求抓取多少项和pipelines的复杂度。...、发出一定数量请求、发生一定数量错误时,提前关闭爬虫。...Feeds Feeds可以让你导出用Scrapy抓取的数据到本地或到服务器。存储路径取决于FEED_URI.FEED_URI,其中可能包括参数。...例如,REDIRECT_PRIORITY_设为2,意味着每次有重定向时,都会在没有重定向请求之后,预约一个新的请求。