Python分布式爬虫打造搜索引擎

1.课程介绍

Python分布式爬虫打造搜索引擎 - 图3

Python分布式爬虫打造搜索引擎 - 图4

Python分布式爬虫打造搜索引擎 - 图5

Python分布式爬虫打造搜索引擎 - 图6

Python分布式爬虫打造搜索引擎 - 图7

Python分布式爬虫打造搜索引擎 - 图8

Python分布式爬虫打造搜索引擎 - 图9

Python分布式爬虫打造搜索引擎 - 图10

Python分布式爬虫打造搜索引擎 - 图11

2.开发环境

Python分布式爬虫打造搜索引擎 - 图12

3.基础知识

3.1 技术选型

Python分布式爬虫打造搜索引擎 - 图13

Python分布式爬虫打造搜索引擎 - 图14

Python分布式爬虫打造搜索引擎 - 图15

3.2 正则表达式

Python分布式爬虫打造搜索引擎 - 图16

Python分布式爬虫打造搜索引擎 - 图17

3.3 深度优先vs广度优先

Python分布式爬虫打造搜索引擎 - 图18

Python分布式爬虫打造搜索引擎 - 图19

Python分布式爬虫打造搜索引擎 - 图20

Python分布式爬虫打造搜索引擎 - 图21

Python分布式爬虫打造搜索引擎 - 图22

Python分布式爬虫打造搜索引擎 - 图23

3.4 url去重

Python分布式爬虫打造搜索引擎 - 图24

3.5 Unicode和utf8

Python分布式爬虫打造搜索引擎 - 图25

Python分布式爬虫打造搜索引擎 - 图26

Python分布式爬虫打造搜索引擎 - 图27

4.scrapy介绍

4.1 原理

Python分布式爬虫打造搜索引擎 - 图28

Python分布式爬虫打造搜索引擎 - 图29

Python分布式爬虫打造搜索引擎 - 图30

绿色箭头是数据流;中间是中间件;

Python分布式爬虫打造搜索引擎 - 图31

Python分布式爬虫打造搜索引擎 - 图32

Python分布式爬虫打造搜索引擎 - 图33

Python分布式爬虫打造搜索引擎 - 图34

Python分布式爬虫打造搜索引擎 - 图35

4.2 安装创建项目

Python分布式爬虫打造搜索引擎 - 图36

Python分布式爬虫打造搜索引擎 - 图37

Python分布式爬虫打造搜索引擎 - 图38

Python分布式爬虫打造搜索引擎 - 图39

http://changsha.offcn.com/html/shiyedanwei/

Python分布式爬虫打造搜索引擎 - 图40

Python分布式爬虫打造搜索引擎 - 图41

Python分布式爬虫打造搜索引擎 - 图42

Python分布式爬虫打造搜索引擎 - 图43

Python分布式爬虫打造搜索引擎 - 图44

Python分布式爬虫打造搜索引擎 - 图45

Python分布式爬虫打造搜索引擎 - 图46

Python分布式爬虫打造搜索引擎 - 图47

Python分布式爬虫打造搜索引擎 - 图48

Python分布式爬虫打造搜索引擎 - 图49

Python分布式爬虫打造搜索引擎 - 图50

Python分布式爬虫打造搜索引擎 - 图51

Python分布式爬虫打造搜索引擎 - 图52

Python分布式爬虫打造搜索引擎 - 图53

4.3 数据建模

Python分布式爬虫打造搜索引擎 - 图54

Python分布式爬虫打造搜索引擎 - 图55

Python分布式爬虫打造搜索引擎 - 图56

Python分布式爬虫打造搜索引擎 - 图57

Python分布式爬虫打造搜索引擎 - 图58

4.4 翻页请求

Python分布式爬虫打造搜索引擎 - 图59

Python分布式爬虫打造搜索引擎 - 图60

模拟翻页

找“下一页”的url

Python分布式爬虫打造搜索引擎 - 图61

Python分布式爬虫打造搜索引擎 - 图62

a标签的13不能写死,否则是取不到数值的

Python分布式爬虫打造搜索引擎 - 图63

Python分布式爬虫打造搜索引擎 - 图64

最终结果:

Python分布式爬虫打造搜索引擎 - 图65

Python分布式爬虫打造搜索引擎 - 图66

说明:首页跟翻页的url不一样也没有关系,这里获取到下一页的url之后直接进行替换了

Python分布式爬虫打造搜索引擎 - 图67

Python分布式爬虫打造搜索引擎 - 图68

说明2:中括号的方法是可选的,如果Request不设置callback,那么就默认用parse方法解析

Python分布式爬虫打造搜索引擎 - 图69

meta参数通常用于提取需要的详情页面

Python分布式爬虫打造搜索引擎 - 图70

Python分布式爬虫打造搜索引擎 - 图71

Python分布式爬虫打造搜索引擎 - 图724.5 模拟登陆

Python分布式爬虫打造搜索引擎 - 图73

Python分布式爬虫打造搜索引擎 - 图74

Python分布式爬虫打造搜索引擎 - 图75

Python分布式爬虫打造搜索引擎 - 图76

找到自己的个人主页,然后刷新浏览器,找到请求的cookies

Python分布式爬虫打造搜索引擎 - 图77

Python分布式爬虫打造搜索引擎 - 图78

重写start_requests

Python分布式爬虫打造搜索引擎 - 图79

Python分布式爬虫打造搜索引擎 - 图80

Python分布式爬虫打造搜索引擎 - 图81

Python分布式爬虫打造搜索引擎 - 图82发送post请求

方法1:

Python分布式爬虫打造搜索引擎 - 图83

Python分布式爬虫打造搜索引擎 - 图84

Python分布式爬虫打造搜索引擎 - 图85

抓包

Python分布式爬虫打造搜索引擎 - 图86

Python分布式爬虫打造搜索引擎 - 图87

Python分布式爬虫打造搜索引擎 - 图88

Python分布式爬虫打造搜索引擎 - 图89

Python分布式爬虫打造搜索引擎 - 图90

Python分布式爬虫打造搜索引擎 - 图91

结果

Python分布式爬虫打造搜索引擎 - 图92

Python分布式爬虫打造搜索引擎 - 图93

4.6 管道使用

Python分布式爬虫打造搜索引擎 - 图94

Python分布式爬虫打造搜索引擎 - 图95

Python分布式爬虫打造搜索引擎 - 图96

Python分布式爬虫打造搜索引擎 - 图97

数据库管道:

Python分布式爬虫打造搜索引擎 - 图98

Python分布式爬虫打造搜索引擎 - 图99

Python分布式爬虫打造搜索引擎 - 图100

Python分布式爬虫打造搜索引擎 - 图101

总结:

Python分布式爬虫打造搜索引擎 - 图102

4.7 crawlspider

Python分布式爬虫打造搜索引擎 - 图103

Python分布式爬虫打造搜索引擎 - 图104

Python分布式爬虫打造搜索引擎 - 图105

Python分布式爬虫打造搜索引擎 - 图106

Python分布式爬虫打造搜索引擎 - 图107

scrapy shell 链接

Python分布式爬虫打造搜索引擎 - 图108

提取链接

Python分布式爬虫打造搜索引擎 - 图109

Python分布式爬虫打造搜索引擎 - 图110

Python分布式爬虫打造搜索引擎 - 图111

Python分布式爬虫打造搜索引擎 - 图112

4.8 中间件

Python分布式爬虫打造搜索引擎 - 图113

Python分布式爬虫打造搜索引擎 - 图114

Python分布式爬虫打造搜索引擎 - 图115

Python分布式爬虫打造搜索引擎 - 图116

Python分布式爬虫打造搜索引擎 - 图117

Python分布式爬虫打造搜索引擎 - 图118

Python分布式爬虫打造搜索引擎 - 图119

Python分布式爬虫打造搜索引擎 - 图120

Python分布式爬虫打造搜索引擎 - 图121