python爬虫前奏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫前奏相关的知识,希望对你有一定的参考价值。

参考技术A 在浏览器中发送http请求的过程:

1.当用户在浏览器地址栏输入URL并按回车键时,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“获取”和“发布”两种方法。

2.当我们输入网址htp://www百度。com在浏览器中,浏览器发送Request请求获取HTP/www Baidu.com的html文件,服务器将Response文件对象发回浏览器。

3.浏览器分析响应中的HTML,发现它引用了很多其他文件,比如Images文件、CSS文件、JS文件。浏览器会自动再次发送一个获取图片、CSS文件或JS文件的请求。

4.当所有文件下载成功后,网页将完全按照HTML语法结构显示。

#url解释:

URL是统一资源定位符的缩写,统一资源定位符。

网址由以下部分组成:

scheme://host:port/path/> query-string = XXX # ancho

方案:表示访问的协议,如http或https、ftp等。

主机:主机名、域名,如www.baidu.com。

端口:端口号。当您访问网站时,浏览器默认使用端口80。

路径:找到路径。例如,在www.jianshu.com/trending/now,,以下趋势/现在是路径。

查询字符串:查询字符串,如www.baidu.com/s?. Wd=python,后跟Wd = python,是搜索字符串。

锚点:锚点,背景一般忽略,前端用于页面定位。

浏览器中的一个ufl,浏览器将对这个url进行编码。除了英文字母、数字和一些符号之外,所有其他符号都用百分号加上十六进制代码值进行编码。

#请求头通用参数:

在http协议中,当向服务器发送请求时,数据被分成三部分。第一个是把数据放在url中,第二个是把数据放在正文中(在post请求中),第三个是把数据放在头部。这里,我们介绍一些经常在网络爬虫中使用的请求头参数:

用户代理:浏览器名称。这通常用于网络爬虫。当请求网页时,服务器可以通过这个参数知道哪个浏览器发送了请求。如果我们通过爬虫发送请求,那么我们的用户代理就是Python。对于那些有反爬虫机制的网站,很容易判断你的请求是爬虫。因此,我们应该始终将此值设置为某些浏览器的值,以伪装我们的爬虫。

引用者:指示当前请求来自哪个网址。这也可以作为反爬虫技术。如果不是来自指定页面,则不会做出相关响应。

http协议是无状态的。也就是说,同一个人发送了两个请求,服务器无法知道这两个请求是否来自同一个人。因此,此时使用cookie进行标识。一般来说,如果你想成为一个登录后才能访问的网站,你需要发送cookie信息。

常见的请求方法有:

在Http协议中,定义了八种请求方法。这里介绍两种常见的请求方法,即get请求和post请求。

Get request:一般来说,get request只在从服务器获取数据时使用,不会对服务器资源产生任何影响。

发布请求:发送数据(登录)、上传文件等。,并在会影响服务器资源时使用post请求。

这是网站开发中常用的两种方法。并且一般会遵循使用原则。然而,为了成为一个反爬虫机制,一些网站和服务器经常出于常识玩牌。应该使用get方法的请求可能必须更改为post请求,这取决于具体情况。

常见响应状态代码:

00:请求正常,服务器正常最近数据。

31:永久重定向。例如,当您访问www.jingdong.com时,您将被重定向到www.jd.com。

32:临时重定向。例如,当访问需要登录的页面时,此时没有登录,您将被重定向到登录页面。

400:在服务器上找不到请求的网址。换句话说,盾请求ur1错误。

403:服务器拒绝访问,权限不足。

50:服务器内部错误。可能是服务器有bug。

项目部署前奏命令

安装python3.6
apt-get update
apt-get install software-properties-common
add-apt-repository ppa:jonathonf/python-3.6
apt-get update
apt-get install python3.6

创建软链接
cd /usr/bin
rm python
ln -s python3.6 python
rm python3
ln -s python3.6 python3

安装pip3.6
apt-get install python3-pip
pip3 install --upgrade pip

安装虚拟环境
pip3 install virtualenv

创建虚拟环境
virtualenv mysite_env
source mysite_env/bin/activate
deactivate

安装git
apt-get install git

clone代码
git clone

安装mysql
wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
dpkg -i mysql-apt-config_0.8.10-1_all.deb
apt-get update
apt-get install mysql-server

同步数据

上传settings.py用于测试

安装mysqlclient
wget https://dev.mysql.com/get/libmysqlclient-dev_8.0.11-1ubuntu16.04_amd64.deb
dpkg -i libmysqlclient-dev_8.0.11-1ubuntu16.04_amd64.deb
# 执行上一句,若提示没有按照libmysqlclient21,则执行apt-get install libmysqlclient21
apt-get update
apt-get install libmysqlclient-dev
apt-get install python3.6-dev
apt-get install openssl
apt-get install libssl-dev

测试启动
python manage.py runserver 0.0.0.0:80
































以上是关于python爬虫前奏的主要内容,如果未能解决你的问题,请参考以下文章

爬虫前奏,带你感受爬虫

Python 爬虫

Python 原生爬虫

爬虫前奏

爬虫开发前奏

网络爬虫前奏:HTTP的请求与响应