一。入门知识:

1.1.HTTP简介

HTTP = HyperText Transfer Protocol

URI = Uniform Resource Identifier

URL = Uniform Resource Locator

URI和URL的区别:URI强调的是资源,而URL强调的是资源的位置。

1.2常用请求类型

OPTIONS: 返回服务器针对特定资源所支持的http请求方法。

HEAD: 向服务器索要与get请求相一致的响应,只不过响应体将不会被返回。

GET: 向特定资源发出请求

PUT: 向指定资源位置上传其最新内容

POST: 向指定资源提交数据进行处理请求

DELETE: 请求服务器删除指定URI所标识的资源

PATCH: 用来将局部修改应用于某一资源

1.3HTTP常见状态码

200/OK: 请求成功

201/Created: 请求已被实现,且一个新资源已根据请求被建立,URI跟随Location头信息返回。

202/Accepted: 服务器已接受请求,但尚未处理。

400/Bad Request: 请求无法被服务器理解

401/Unauthorized: 当前请求需要用户验证

403/Forbidden: 服务器已理解请求,但拒绝执行。

404/Not Found

1.4 爬虫框架介绍

第一步:将种子URL放入队列

第二步:从队列中获取URL,抓取内容。

第三步:解析抓取内容,将需要进一步抓取的URL放入工作队列,存储解析后的内容

1.5 抓取策略

深度优先:举例先完成专题一的所有内容,再完成专题二的所有内容。

广度优先

PageRank

大站优先策略 举例: 根据网站的Pr顺序 指定优先级

1.6 如何去重

Hash表

bloom过滤器

1.7 爬虫质量标准

分布式

可伸缩性

性能和有效性

质量

新鲜性

更新

可扩展性

二。代码实施import requests

import xml.etree.ElementTree as ET

from xml.parsers.expat import ParserCreate

class DefaultSaxHandler(object):

def __init__(self, provinces):

self.provinces = provinces

# 处理标签开始

def start_element(self, name, attrs):

if name != 'map':

name = attrs['title']

number = attrs['href']

self.provinces.append((name, number))

# 处理标签结束

def end_element(self, name):

pass

# 文本处理

def char_data(self, text):

pass

def get_province_entry(url):

# 获取文本,并用gb2312解码

content = requests.get(url).content.decode('gb2312')

# 确定要查找字符串的开始结束位置,并用切片获取内容。

start = content.find('')

end = content.find('')

content = content[start:end + len('')].strip()

print(content)

provinces = []

# 生成Sax处理器

handler = DefaultSaxHandler(provinces)

# 初始化分析器

parser = ParserCreate()

parser.StartElementHandler = handler.start_element

parser.EndElementHandler = handler.end_element

parser.CharacterDataHandler = handler.char_data

# 解析数据

parser.Parse(content)

# 结果字典为每一页的入口代码

return provinces

provinces = get_province_entry('http://www.ip138.com/post')

print(provinces)

结果如下:

Ps: start方法中判断不等于map标签的即为area标签 然后选取href title属性对应的值即可

持续更新中。。。。,欢迎大家关注我的公众号LHWorld.

python爬虫知识大全_Python爬虫知识点一相关推荐

  1. python爬虫知识大全_Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  2. python爬虫资源大全_Python爬虫抓取纯静态网站及其资源(基础篇)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:程序员宝库 **( 想要学习Python?Python ...

  3. python入门知识大全_python基础知识有哪些

    Python基础知识:1.引用和对象:2.可变数据类型和不可变数据类型:3.引用传递和值传递:4.深拷贝和浅拷贝:5.基本数据类型:6.关键字.标识符和内置函数:7.算术.赋值运算符等等. Pytho ...

  4. python爬虫教程大全_python爬虫入门教程

    爬虫是一个是一个好玩的技术,偷偷爬取mm的照片,爬取知乎用户头像等等,这些教程经验帖在网上随便一搜,到处都是:那么今天小编将给大家简单讲讲python爬虫的入门.鉴于经验排版模式有限,所以这里只能简单 ...

  5. python动物代码大全_python爬虫代码大全

    技术文档 主体内容:可以认为是页面最想表达的内容总和.对于内容详情页来说,主体内容指从标题开始至正文内容结束,翻页区域也被视为主体内容,文章后的评论.分享.推荐等不视为主体内容. 首屏:用户点击搜索结 ...

  6. python数据分析知识整理_Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上)...

    原标题:Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上) TK | 作者 LearnKu | 翻译 https://www.freecodecamp.org/news/learn ...

  7. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  8. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  9. python爬虫自学路线_python 爬虫学习路线:从入门到进阶

    大家好,我是凉拌 今天给大家详解一下我的爬虫学习路线. 对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情.比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,浪费了 ...

最新文章

  1. 人群计数--Cross-scene Crowd Counting via Deep Convolutional Neural Networks
  2. 等值连接_干货:16种等值线图的解读与应用,用快速规律解题
  3. [Android学习系列8]数据库ormlite笔记
  4. 疯狂秀才权限管理系统,开源了
  5. [shell进阶]——shell多线程
  6. Logback 专题
  7. 多态性——vptr和vtable
  8. 前端学习(2660):外部传入也行
  9. 【ElasticSearch】在 ELASTICSEARCH 中使用管道重新索引数据 pipeline
  10. 【转载】Understanding When to use RabbitMQ or Apache Kafka
  11. python中日志logging模块和异常捕获traceback模块的使用
  12. adb连接MuMu、逍遥、夜神、雷电模拟器以及腾讯手游助手以及断开连接
  13. 计算机房的标准和规定,机房建设标准和规范.doc
  14. background-position切图
  15. 中文论文检索证明怎么开_SCI论文检索后收录证明怎么开?
  16. 新浪微博维护工具 推兔刷积分
  17. java实现每天定时执行任务,Spring Task定时任务每天零点执行一次的操作
  18. (已解决)win10重装后无法开启双显示屏
  19. 第二章 项目经理评分
  20. 华为荣耀平板5怎么样_荣耀平板5和华为m5青春版哪个好

热门文章

  1. controller层没反应_埋地管道防腐层探测检漏仪FJ-10地下管线探测仪的说明及应用...
  2. 哈佛的凌晨4点。。。
  3. AtCoder AGC036C GP 2 (组合计数)
  4. vc下c语言网络编程,用VC编写C/S消息传送程序
  5. HailStone序列
  6. 转载:(C/C++函数返回多个值)
  7. IDEA修改module的名字
  8. glance部署及操作
  9. poj2912(种类并查集+枚举)
  10. Android数据保存之SharedPreference