重定向

Scrapy307重定向

末鹿安然 提交于 2019-12-23 04:43:27
最近在用Scrapy写爬虫,但是爬取有的网站时会出现307重定向的错误,使得无法爬取到正确网站,这往往是因为原网站采用了反爬虫机制导致的。 在StackOverFlow上有人提出了这个问题: scrapy 307 redirects to same page 这里的答案指出了307是Cookie的问题,它的建议是打开Cookie,并需要自己分析哪些是网站真正需要的用来鉴别是机器访问还是认为访问的数据。 然而在Scrapy中,如果没有额外设置,默认情况下Cookie是打开的,对于我的情况,恰好是需要关闭Cookie即可,即在settings.py中,加入如下一句话: 是否是我这种情况,可以通过一个简单的方式来鉴别,请仔细看红框部分,即真实爬取的网页的URL后面比起预先定义的URL多了个UUID和vid,那么就表示开启了cookie,使用上述方式关闭即可。 来源: CSDN 作者: _吟游诗人 链接: https://blog.csdn.net/qq_32623363/article/details/103654217

Django之视图

半城伤御伤魂 提交于 2019-12-23 03:21:34
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。 一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 让我们来逐行解释下上面的代码: 首先,我们从 django.http 模块导入了 HttpResponse 类,以及Python的 datetime 库。 接着,我们定义了 current_datetime 函数。

nginx高级用法

梦想与她 提交于 2019-12-23 02:15:43
功能 说明 配置语法 配置位置 配置举例 结果验证 备注 rewrite 跳转重定向 (不同于代理的跳转重定向,此处nginx不是代理服务器,而是本身就是web服务器) rewrite 正则表达式 replacement[flag] server、location、if一级来配置 1、 location /down { rewrite ^/down http://www.cctv.com permanent; } 2、 location / { rewrite ^/down /test/abc.html permanent; root /opt/work; } 1、访问http://Nginx地址/down时将跳转至http://www.cctv.com 2、访问http://Nginx地址/down时将跳转至http://Nginx地址/test/abc.html 正则表达式中()用于匹配括号之间的内容,通过$1,$2调用 flag标志位: last:停止rewrite检测 break:停止rewrite检测 redirect:返回302临时重定向,地址栏会显示跳转后的地址 permanent:重返301永久重定向,地址栏会显示跳转后的地址(浏览器会永远记住,即使nginx服务器关闭了也还是会跳转至其他网页)(IE是这样的,但是搜狗浏览器收到301依然当做临时重定向处理)

Django中的视图(view)

[亡魂溺海] 提交于 2019-12-23 00:39:28
视图 1.什么是视图   视图就是Django项目下的view.py文件,它的内部是一系列的函数或者是类,用来专门处理客户端访问请求后处理请求并且返回相应的数据,相当于一个中央情报处理系统 2.具体视图实例 3.CBV和FBV   视图文件中除了上面的用一系列的函数来对应处理客户端请求的数据逻辑外,还可以通过定义类来处理相应的逻辑,首先第一步 要想真正让CBV的方式凑效,光在视图文件中改动是不够的 所以才CBV模式下,我们可以自定义dispatch方法,来控制之下真正的方法之前之后的一些行为,达到装饰器的效果! Request对象和Response对象 request对象   当一个页面数据被请求时,Django就会将请求的所有数据自动传递给约定俗称的request这个参数,而我们只需要拿到这个参数并对其进行一系列的操作即可获得所有与操作有关的数据 1.操作request对象的相应方法 path_info 返回用户访问url,不包括域名 method 请求中使用的HTTP方法的字符串表示,全大写表示。 GET 包含所有HTTP GET参数的类字典对象 POST 包含所有HTTP POST参数的类字典对象 body 请求体,byte类型 request.POST的数据就是从body里面提取到的 属性 属性:   django将请求报文中的请求行、头部信息、内容主体封装成

HTTP请求流程你了解了么?

萝らか妹 提交于 2019-12-22 22:52:14
预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议。 OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 会话层 传输层 TCP,UDP 网络层 IP 数据链路层 物理层 了解到HTTP协议是建立在TCP连接基础之上的。 HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础 ,通常由浏览器发起请求,用来获取不同类型的文件, 例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 我们对HTTP不太了解的话都会存在这样的疑惑,为什么再次访问同一站点会比第一次快,登录过一次后的网站再次访问就处于登录状态等,我们 通过对HTTP请求过程的剖析来解开这些谜团。 浏览器端发起 HTTP 请求流程 浏览器输入网址: http://time.geekbang.org/index.html,之后会完成什么步骤呢 ? 1、构建请求 首先,浏览器构建 请求行 信息,构建好后,浏览器准备发起网络请求。 GET /index.html HTTP1.1 2、查找缓存 在真正发起网络请求之前

Linux基础总结 以及实例(基于Centos8)

孤街醉人 提交于 2019-12-22 22:22:29
Linux基础总结 以及实例(基于Centos8) cmd: date. example: [ 10:34:57 root@centos8 / ] #date -d "1 year" +%F_%T 2020-12-17_10:36:48 cmd: cp 底层原理 在目标文件里先检索一个空闲的节点编号,其次将要复制的文件的属性、大小写进inode表中生成新条目,最后将新文件复制到磁盘上,然后这个空间会有一个指针指向它的路径和数据块。 example 1 : 每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见。 [ 16:40:19 root@centos8 ~ ] #cp -av /etc/ /data/backup`date +%F` example 2 : 创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限 [ 16:40:19 root@centos8 ~ ] #cp -a /root /data/rootdir cmd: mv 底层原理 在同一区,没有数据移动,用新文件名创建新的目录项,删除旧目录条目对应的旧文件名 在不同区,mv相当于cp和rm practice : 1、如何创建 /testdir/dir1/x,/testdir/dir1/y,

Requests方法 -- 重定向操作

China☆狼群 提交于 2019-12-22 12:25:46
一、重定向 1. (Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址 B 了。 2.重定向状态码: --301 redirect: 301 代表永久性转移(Permanently Moved) --302 redirect: 302 代表暂时性转移(Temporarily Moved ) 3.举个简单的场景案例,先登录博客园打开我的博客首页,进我的随笔编辑界面,记住这个 地址:https://i.cnblogs.com/EditPosts.aspx?opt=1 4.退出博客园登录,把刚才我的随笔这个地址输入浏览器回车,抓包会看到这个请求状态码是 302,浏览器地址栏瞬间刷新跳到登录首页去了 二、禁止重定向(allow_redirects ) 1.用 get 方法请求:https://i.cnblogs.com/EditPosts.aspx?opt=1 2.打印状态码是 200,这是因为 requets 库自动处理了重定向请求了,默认是allow_redirects=True 是启动重定向 3.自动处理重定向地址后,我们就获取不到重定向后的 url 了,就无法走下一步,这里我们可以设置一个参数禁止重定向:allow_redirects=False (allow_redirects=True 是启动重定向),然后就可以看到 status

Apache重定向URL

只谈情不闲聊 提交于 2019-12-22 03:17:11
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号; (2)然后再在httpd.conf中书写如下规则在apache的配置文件中新增: RewriteEngine on RewriteRule ^/(.*).(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|mp3|wav)$ https://abc.com/$1.$2 [R,NC] 其中,把请求资源(含有js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|mp3|wav)全部重定向到后面的地址。 这种规则是对整个环境下的 Apache Rewrite规则修正符 1) R 强制外部重定向 2) F 禁用URL,返回403HTTP状态码。 3) G 强制URL为GONE,返回410HTTP状态码。 4) P 强制使用代理转发。 5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。 6) N 重新从第一条规则开始运行重写过程。 7) C 与下一条规则关联 来源: https://www.cnblogs.com/lyc94620/p/8611947.html

nginx配置301重定向

一笑奈何 提交于 2019-12-21 12:25:58
1. 简介 301重定向可以传递权重,相比其他重定向,只有301是最正式的,不会被搜索引擎判断为作弊 2. 栗子 savokiss.com 301到 savokiss.me 3. nginx默认配置方法 打开 nginx.conf 文件,找到你的 server 配置段: server { listen 80; server_name savokiss.com www.savokiss.com savokiss.me www.savokiss.me; if ($host != 'www.savokiss.me' ) { rewrite ^/(.*)$ http://www.savokiss.me/$1 permanent; } } 4. 已经配置多域名的nginx配置方法 新建www.savokiss.com.conf文件 填入以下内容: server { listen 80; server_name www.savokiss.com savokiss.com; rewrite ^(.*) http://www.savokiss.me$1 permanent; } 注意要在主conf文件(nginx.conf)里面包含该文件 语句如下: include /etc/nginx/conf.d/*.conf; 5. reload nginx 输入命令:(nginx的路径可能不同) /usr

Linux 重定向 管理组和用户 tar备份和恢复 crone计划任务(DAY4牛)

南笙酒味 提交于 2019-12-21 12:23:51
重定向操作:将前面命令的输出,作为文本文件内容写入到文件中 >:覆盖重定向 >>:追加重定向 [root@A ~]# cat --help > /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# hostname [root@A ~]# hostname > /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# hostname >> /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# ifconfig >> /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# echo hello [root@A ~]# echo 123456 [root@A ~]# echo 123456 > /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# echo haha >> /opt/cat.txt [root@A ~]# cat /opt/cat.txt [root@A ~]# echo linux >> /opt/cat.txt [root@A ~]# cat /opt/cat.txt ##################