爬虫的五个步骤:
1)需求分析,找到需求相关的网址
2)获取网址的返回信息(urllib,requests)
3)定位需要的信息所在位置(re正则表达式,XPATH, CSS selector)
4)内容的存储 (open,pymysql,pymongo)
第一步,观察http的包,使用requests的包,get,post
包头中重要的信息描述:
1)cookie:能够存储一些服务器端的信息,与session共同完成身份标志的工作。
2)user-agent:标签
3)referer:从那个页面跳转过来的。
开始第一个爬虫案例吧,
import requests
url='http://www.baidu.com'
response=requests.get(url)
print(response.text)
#返回内容遇到乱码,是encoding的问题
response.encoding='utf-8'
print(response.text)
运行结果如下图所示,第一个print显示乱码,加入encoding之后再print正常显示
#返回html信息的二进制(bytes)类型,response.content
print(response.content)
输出如下内容:最后一步保存到文件系统
得到所想要的网站html文件。
完整代码如下:
import requests
url='http://www.baidu.com'
response=requests.get(url)
print(response.text)
#返回内容遇到乱码,是encoding的问题
response.encoding='utf-8'
print(response.text)
#返回html信息的二进制(bytes)类型,response.content
print(response.content)
#最后一步保存到文件系统
with open('baidu.html','wb') as f:
f.write(response.content)
当学习Python爬虫时,以下是一个入门学习大纲供参考:
1. 基础知识:
Python基础语法:学习Python的基本语法、变量、数据类型、流程控制、函数等基础知识。
HTML基础:了解HTML标签的基本结构和常见标签的使用。
HTTP协议:熟悉HTTP请求和响应的基本结构,了解HTTP的GET、POST等常用方法
2. 网络请求:
requests库:学习如何使用Python中的requests库发送HTTP请求,并获取响应数据。
网络爬虫框架:了解Scrapy等常用的网络爬虫框架,学习如何使用框架进行数据爬取
3. 数据解析和提取:
正则表达式:学习正则表达式的基本语法和用法,用于从HTML文本中提取所需信息。
BeautifulSoup库:掌握BeautifulSoup库的使用,用于解析HTML文档,并提供简单的数据提取方法。
XPath:了解XPath语法,学习使用XPath从HTML文档中提取数据。
4. 数据存储:
文件存储:学习将爬取到的数据存储到本地文件中,如CSV、JSON等格式。
数据库存储:了解如何将爬取到的数据存储到数据库中,如MySQL、MongoDB等。
5. 反爬虫和数据清洗:
反爬虫机制:学习常见的反爬虫机制,如User-Agent检测、验证码处理等。
数据清洗:了解数据清洗的基本方法,如去除HTML标签、去除重复数据等。
6. 进阶技巧:
并发爬虫:学习如何使用多线程、协程等技术提高爬虫的效率。
动态网页爬取:了解如何处理使用JavaScript动态生成内容的网页。
IP代理和登录验证:了解如何使用IP代理和处理登录验证等问题。
7. 伦理和法律问题:
合法使用:学习爬虫的合法使用原则,遵守网站的使用条款和隐私政策。
遵守法律法规:了解当地的法律法规,确保爬虫行为合法。
以上是一个大致的学习大纲,你可以按照顺序逐步学习每个模块,逐渐掌握Python爬虫的技能。同时,可以结合实际项目和练习来提升自己的能力。记住,不断实践和探索是学习爬虫的关键。