InternetScrapy

网络爬虫限制(审查来源)

1.判断user-Agent进行限制。检查HTTP协议的user-Agent,只想赢浏览器或友好爬虫。
2.为了防止爬虫被拦截,修改请求头user-Agent
requests.get(url,headers = kv)
kv = {“user-Agent:Mozilla/5.0”}
3.常用查询:
r.status_code 请求状态码
r.text 内容
r.encoding Http header相应内容编码方式
r.apparent_encoding 内容分析出的响应编码方式
r.content Http响应内容的二进制形式
r.raise_for_status() 判断异常,不是200,引发、httpError异常

requests.request(method,url,**kwargs)

1.method的方式有get,post,put,patch,delete

requests.get() 的唯一一个必填参数为 url,它可以是一个字符串,用于指定目标网站的URL,值得注意的是,该方法返回的是一个 Response 对象,其常用的属性和方法列举如下:

发送GET请求
*

response.url:返回请求网站的URL
response.status_code:返回响应的状态码
response.encoding:返回响应的编码方式
response.headers:返回的响应头信息(dict类型)
response.content:返回的响应体(bytes类型)
response.text:返回的响应体(str类型),相当于 response.content.decode(‘utf-8’)*
response.json():返回的响应体(json类型),相当于 json.loads(response.text)

>>> import requests
>>> response = requests.get('http://www.httpbin.org/get')

#查看response类型
>>> type(response)
<class 'requests.models.Response'>

#返回的请求网站URL
>>> response.url     
'http://www.httpbin.org/get'

#返回的状态码
>>> response.status_code     
200

#检查返回的编码方式
>>> print(response.encoding)
None

平行遍历

.next_sibling            返回Html下一个平行节点标签
.previous_sibling        返回Html上一个平行节点标签
.next_siblings           返回Html后续所有平行节点标签
.previous_siblings       返回Html文本前续所有平行节点标签

搜索(深度遍历)

<>.find()                          一个
<>.find_all()              		   全部
<>.find_parents()                  先辈节点
<>.find_parent()                   先辈节点第一个
<>.find_next_sibling()             后续平行节点下一个
<>.find_previous_siblings()        平行节点前续搜索
<>.find_previous_sibling()         平行节点前续搜索第一个

BeautifulSoup4库

基本方法:

soup.tag:(如:soup.a)
<tag>.name  (如:a.name)   标签中的名字
<tag>.attrs               标签中的字典
<tag>.string              标签中的字符串

下行遍历:

.contents        将<tag>所有儿子节点存入列表
.children        与.contents类似,用于循环遍历儿子节点
.descendants     包含所有子孙节点,用于循环遍历

上行遍历:

.parent     节点的父亲标签
.parents    节点先辈标签的迭代类型,用于循环遍历先辈节点

re主要功能函数功能详情请点击

re.search(pattern,string,flags=0)
flags:方法:

re.I 忽略大小写,[A-Z]也能匹配小写 re.M ^操作符能给定字符串的每行当做匹配开始
re.S 正则表达式中,操作符能够匹配所有字符,默认匹配除换行外

所有字符

re.sub(pattern,repl,string,count=0,flags=0)
pattern: 正则表达式与原生字符串表示方法
repl: 替换匹配字符串 string: 待匹配的字符串
count: 最大匹配次数 flags: 控制标记

re.search()      在一个字符串中搜索匹配正则表达式的第一个位置返回match
re.match()       从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall()     以列表类型返回全部能匹配的字符串,返回列表
re.split()       将一个字符串按照正则表达式匹配结果分割,返回列表类型
re.finditer()    返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub()         在一个字符串替换所有匹配正则表达式的子串,返回替换后的字符串

re方法图

scrapy框架

创建一个新工程           scrapy startproject<name>[dir]
创建一个爬虫             scrapy genspider[options]<name》<domain》
获取爬虫配置信息          scrapy settings[options]
运行一个爬虫             scrapy crawl<spider》
列出工程中所有爬虫        scrapy list
启动url调试命令行        scrapy shell [url]

生产的工程目录:

python123demo/          外层目录
--scrapy.cfg            部署scrapy爬虫的配置文件
python123demo/          scrapy框架的用户自定义python代码
  --init-.py            初始化脚本
  --items.py            Items代码模板(继承类)
middlewares.py          Middlewares代码模板(继承类)
pipelines.py            pipelines代码模板(继承类)
settings.py             scrapy爬虫的配置文件
spiders/                spiders代码模板目录(继承类)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值