爬虫从入门到放弃——爬虫的基本原理(代码片段)

heshen175 heshen175     2023-01-20     153

关键词:

 爬虫的基本原理:https://www.cnblogs.com/zhaof/p/6898138.html

这个文章写的非常好,把爬虫 的基本思路解释的很清楚的。

 

一、介绍工具(用什么爬)

1、Python IDLE就是用了创建、运行、测试和调试python的工具。

技术分享图片

集成开发环境:用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。

后面我学习python,老师教的用得这几个工具,后面会一 一介绍。

技术分享图片

文本类:

IDLE:是Python 自带、默认、常用、入门级的Python编辑工具。对于入门、要求功能简单,代码不超过300行的同学,这玩意儿就很实用。

sublime text :专门为程序员开发第三方专用程序员工具。编写体验好,专业程序员喜欢。

集成类工具

wing :收费、调试丰富、版本同步,适合多人共同开发。

visual studio &PTVS :微软提供、调试丰富。

Eclipse pydev :开源IDLE开发工具,要有一定的开发经验。

PyCharm:简单、集成度高,适合复杂项目。

abaconda:开源免费、支持800个第三方库。

 

2、爬取数据用到的工具

requests:用来爬取HTML。页面、自动提交请求的。(模拟人的动作)

robots 协议:网络爬虫协议,去爬取东西时要遵循的规矩。

beautiful soup :把爬取回来的东西解析了

正则表达式:用来提取已经解析好的,你要的东西。

 

3、一系列的安装

安装requests库(前提要有pip),百度里面有很多安装教程。

二、requests库的介绍

requests库的7个主要方法 ,网络安全限制,更多用得用得是GET方法。

 技术分享图片

request基础方法,其他方法在其中分装。

技术分享图片

get方法

技术分享图片

mthod请求方式有7种,就是HTTP协议里面的7种方法,再加上OPTIONS方法,OPTIONS方法是向服务器获取参数。

                         **Kwargs

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

 

requests库异常

 技术分享图片

    

 

response 对象属性

 技术分享图片

# GET        全部信息
# HEADER     仅头部信息

# Put        全部重置 
# Patch      局部更新              ## 更改操作用户
# POST       后面添加新内容         ## 搜索使用
# DELETE     删除全部

import requests

‘‘‘ 
r = requests.get("http://www.baidu.com")      # 获得全部文本信息 uRL对应的页面内容
print(r.headers)                              # 头部信息
print(r.text)                                 # seem is also all information
‘‘‘

# requests.head
‘‘‘
r2 = requests.head("http://www.baidu.com")       # just head information
print(r.headers)                                 # head information
print(r2.text)                                   # no ! because just get the head information
‘‘‘

#
payload = "key1":"value1","key2":"value2"
r3 = requests.post("http://www.baidu.com",data=payload)
print(r3.text)

 

---------------------------------------------------------------------------------------------------------------------------------------------------  分割线

  

三、HTTP协议

我们去爬URL,就得知道URL遵循HTTP协议,

 http 协议对资源的操作,http协议和requests库方法一一对应。

 技术分享图片

技术分享图片

四、robots协议

爬虫需要遵循的规则,告知你那些能爬,那些不能爬。

技术分享图片

 

技术分享图片


‘‘‘
import requests
r = requests.get(‘https://item.jd.com/13115733485.html‘)
print(r.status_code)
print(r.encoding)
print(r.text)
‘‘‘

‘‘‘
import requests
url = ‘https://item.jd.com/13115733485.html‘
try:
    r = requests.get(url, timeout=30)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[:1000])       #显示前1000的字符
except:
    print("404")
‘‘‘

import requests
def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()   # 如果状态是200,引发异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "404"

if __name__ == "__main__":       #证明小明是自己,不用在执行该代码了
    url = "https://item.jd.com/13115733485.html"
    print(getHTMLText(url)[:1000])

 

五、response 库 用来获取网站信息

import requests
r = requests.get("http://www.baidu.com")

print(r.status_code)           # HTTP请求的返回状态,200表示连接成功。404表示失败
print(r.text)                  # HTTP响应内容的字符串形式,即,uRL对应的页面内容。
print(r.encoding)              # 从HTTP header中猜测的响应内容编码方式
print(r.apparent_encoding)     # 内容中分析出的响应内容编码方式
print(r.content)               # 响应内容的二进制形式 (处理图片,视频等使用)

r.encoding = r.apparent_encoding # 转化编码   r.apparent_encoding  根据它的结果转码
print(r.text)

 六、通用代码框架

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()   # 如果状态是200,引发异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "404"

if __name__ == "__main__":      # 证明小明是自己人,不用在执行这段代码
    url = "http://www.baidu.com"
    print(getHTMLText(url))

●涉及到异常处理用Python的 try -- except 语句。

try语句里面有四句,第一句是get方法、第二句判断是否链接异常、第三句用表兄弟替代encoding去找编写格式,第四句返回内容。

●def 是自定义函数的意思

●if __name__ == ‘__main__‘ 

通俗的理解__name__ == ‘__main__‘:假如你叫小明.py,在朋友眼中,你是小明(__name__ == ‘小明‘);在你自己眼中,你是你自己(__name__ == ‘__main__‘)

if __name__ == ‘__main__‘的意思是:当.py文件被直接运行时,if __name__ == ‘__main__‘之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == ‘__main__‘之下的代码块不被运行。

相信参考这里:https://blog.csdn.net/yjk13703623757/article/details/77918633/

 

爬虫从入门到放弃-纯新手学习-爬虫基本数据库安装

 1.安装好前期必备的库-requests向网页发出请求解释器自带的urllib和reselenium用于向有js渲染的网页发起请求fromseleniumimportwebdriverdriver=webdriver.Chrome()#生成一个driver对象,并打开谷歌浏览器driver.get(‘https://www.baidu.com‘) #打开... 查看详情

python爬虫从入门到放弃,网络爬虫应用实战(代码片段)

python爬虫应用Request库get方法Request对象Response对象session会话对象正则匹配re.match()方法例题:bugku-web基础$_POST例题:bugku-速度要快例题:bugku-秋名山老司机例题:bugku-cookies欺骗Request库get方法Pythonrequests库的get()方法... 查看详情

python爬虫从入门到放弃,网络爬虫应用实战(代码片段)

python爬虫应用Request库get方法Request对象Response对象session会话对象正则匹配re.match()方法例题:bugku-web基础$_POST例题:bugku-速度要快例题:bugku-秋名山老司机例题:bugku-cookies欺骗Request库get方法Pythonrequests库的get()方法... 查看详情

python爬虫从入门到放弃,含案例分析,超详细讲解(代码片段)

Python爬虫1、认识爬虫1.1、概述网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者)按照一定规律,自动地抓取万维网信息的程序或者脚本。1.2、应用场景爬取网页优秀的... 查看详情

python爬虫从入门到放弃,网络爬虫应用实战(代码片段)

python爬虫应用Request库get方法Request对象Response对象session会话对象正则匹配re.match()方法例题:bugku-web基础$_POST例题:bugku-速度要快例题:bugku-秋名山老司机例题:bugku-cookies欺骗Request库get方法Pythonrequests库的get()方法... 查看详情

爬虫入门的基本原理,如果你连这些都不知道那你可以放弃爬虫了

我们天天到处看到爬虫爬虫的,你了解爬虫是什么吗?你知道爬虫的爬取流程吗?你知道怎么处理爬取中出现的问题吗?如果你回答不出来,或许你真的要好好看看这篇文章了!爬虫简介网络爬虫(Webc... 查看详情

python爬虫从入门到放弃(十三)之scrapy框架的命令行详解(代码片段)

...0.html这篇文章主要是对的scrapy命令行使用的一个介绍创建爬虫项目scrapystartproject项目名例子如下:localhost:spiderzhaofan$scrapystartprojecttest1NewScrapyproject‘test1‘,usingtemplatedirectory‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-pa... 查看详情

python爬虫从入门到放弃,含案例分析,超详细讲解(代码片段)

Python爬虫1、认识爬虫1.1、概述网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者)按照一定规律,自动地抓取万维网信息的程序或者脚本。1.2、应用场景爬取网页优秀的... 查看详情

python零基础入门爬虫原理与数据抓取-通用爬虫和聚焦爬虫(代码片段)

​根据使用场景,网络爬虫可分为通用爬虫和聚焦爬虫两种.通用爬虫通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的... 查看详情

python零基础入门爬虫原理与数据抓取-通用爬虫和聚焦爬虫(代码片段)

​根据使用场景,网络爬虫可分为通用爬虫和聚焦爬虫两种.通用爬虫通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的... 查看详情

scrapy框架爬虫爬取糗事百科之python爬虫从入门到放弃第不知道多少天

Scrapy框架安装1.windows10下安装Scrapy框架:  前提:安装了python-pip   1.windows下按住win+R输入cmd  2.在cmd下输入      pipinstallscrapy      pipinstall pypiwin32 这个必须安装,是win下运行scrapy的依赖    ... 查看详情

爬虫基本原理(代码片段)

一、爬虫是什么  1、什么是互联网  互联网是网络设备(网络、路由器、交换机、防火墙等等)和一台台计算机连接而成,像一张网一样。  2、互联网建立的目的  互联网的核心价值在于数据的共享/传递:数据是存放... 查看详情

爬虫基本原理讲解(代码片段)

  (一)简介今天,我们将对爬虫的基础知识做一个基本的梳理,以便大家掌握爬虫的基本思路,爬虫即为网络资源数据获取,用一句话概括就是:请求网站并提取数据的自动化程序爬虫的基本流程分为四步:在第一二步Reques... 查看详情

爬虫基本原理(代码片段)

目录一、爬虫的定义   一、爬虫的定义基本上网:    浏览器提交请求->下载网页代码->解析/渲染成页面。 爬   虫:   模拟浏览器发送请求->下载网页代码->只提取有用的数据->... 查看详情

python爬虫入门教程54-100博客园等博客网站自动评论器(代码片段)

爬虫背景爬虫最核心的问题就是解决重复操作,当一件事情可以重复的进行的时候,就可以用爬虫来解决这个问题,今天要实现的一个基本需求是完成“博客园“博客的自动评论,其实原理是非常简单的,提炼一下需求基本需求... 查看详情

python爬虫从入门到成妖之3-----scrapy框架的命令行详解(代码片段)

创建爬虫项目scrapystartproject项目名例子如下:E:crawler>scrapystartprojecttest1NewScrapyproject‘test1‘,usingtemplatedirectory‘d:\python36\lib\site-packages\scrapy\templates\project‘,createdin:E:crawler 查看详情

python爬虫入门(代码片段)

python爬虫入门(3)​BeautifulSoup库入门文章目录python爬虫入门(3)1.安装及测试安装测验2.BeautifulSoup库基本元素①html标签②库的引用③BeautifulSoup类BeautifulSoup库解析器BeautifulSoup类的基本元素获取Tag获取Name获取Attributes获取NavigableString获... 查看详情

爬虫基本原理(代码片段)

阅读目录一爬虫是什么二爬虫的基本流程三请求与响应四Request五Response六总结一爬虫是什么#1、什么是互联网?互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。#2、互联网... 查看详情