python网络爬虫学习笔记(1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/user_987654321/article/details/93630405

网络爬虫学习笔记(1)

1 资料

《Python网络爬虫从入门到实践》唐松,陈志铨。主要面向windows平台下的python3。

2 笔记

2-1 爬虫概述

  1. (约2016年)网络爬虫个人使用和科研范畴基本不存在问题,但商业盈利范畴就要看对方了。
  2. 通过网站的Robots协议(爬虫协议)可以知道可以和不可以抓取的内容,例如淘宝的[link]https://www.taobao.com/robots.txt。其中User-Agent: 为允许的url,Allow:为允许的内容,Disallow: 为不允许。Disallow: /为禁止抓取允许以外的内容。 Disallow: /abc 表示禁止访问收录abc.php、abc.html和abc文件夹下的所有文件。 Disallow: /abc/ 表示仅禁止访问abc文件夹下的所有文件,但是不限制abc.php、abc.html文件。
  3. 爬取的时候要遵循Robots协议,约束网络爬虫程序速度;使用数据时必须遵守网站的知识产权。
  4. 爬虫流程:1)获取网站,2)解析网页(提取数据),3)存储数据。
  5. 4-1)获取网站——基础技术:request、urllib、selenium(模拟浏览器);进阶技术:多进程多线程抓取、登陆抓取、突破IP封禁、服务器抓取。
  6. 4-2)解析网页——基础技术:re正则表达式、BeautiSoup、lxml
  7. ;进阶技术:解决中文乱码。
  8. 4-3)存储数据——基础技术:txt文件、csv文件;进阶技术:MySQl、MongoDB。

2-2 安装

  1. 安装Anaconda来一键安装python编码环境。利用pip(window进cmd,Mac进terminal)安装bs4、request、lxml等第三方库。
 pip install bs4
 pip install request
 pip install lxml
  1. 编译器Jupyter(其他还有Notepad++、SublimeTexture、Spyder),cmd下输入jupyter notebook浏览器启动Jupyter界面
    *(自己弄的部分)Spyder安装pip install --pre -U spyder……好像有Anaconda最好不要用这个,具体看[link]https://github.com/spyder-ide/spyder/releases

2-3 Python基础(1)

  1. 严格的代码缩进,以Tab键或者4个空格进行缩进。
  2. “#”后面是注释
  3. *python没有限制关键字,方法和变量名也没有加以区分,编写的时候自己得注意取不同的名字。变量会根据赋值的内容自动决定类型。
  4. 输出语句
 print(“内容”)
  1. 4种 数据类型 :1)String字符串、2)Number数字、3)list列表、4)Dictionaries字典。
  2. String字符串——‘和“都可以用来放字符串,可以使用+来连接。
string1 ='abc'
str = "fe"
print(string1+str)
  1. Number数字——常用的有int(整数)和float(浮点数)两种。如果要转换,在变量前加int或float。注意Number不能直接和string相加
thisSeven = 7
float1 = 1.1
chase = int(float1)
print(thisSeven+chase)

另外,Number还有长整数和复数。
5. list列表——列表可以包括任意种类数据类型!此外可以通过[起始下标:结束下标]其他的倒和一般的数组没什么区别。
*用[]赋值,查询也是[]

list1 = ['a', 2, "new", 1.9]
print(list1[1:3])
list1[3] = float(list1[1])
print(list1)

6.Dictionaries字典——可变容器模型,含有key和value(就是键值对啦)。key必须唯一,value可用任意种类数据类型。
*用{}赋值,但用[]查询

notebook = {"name": '1234', "age":7, "class":"first"}
print(notebook["name"])
print(notebook)
#循环遍历notebook的键和值
for key1, value1 in notebook.items():
   print(key1, value1)

猜你喜欢

转载自blog.csdn.net/user_987654321/article/details/93630405
今日推荐