什么是爬虫?
一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息
Python四种基本数据结构
- 列表
**列表中的每个元素都是可变的;
列表的元素都是有序的,也就是说每个元素都有对应的位置;列表可以容纳所有的对象;**list = ['波波', '90', '超哥', '小明']print(list[0])print(list(2:))# result波波['超哥', '小明'] # 如果为切片返回的也是列表的数据结构
- 字典
user_info = { 'name': '小明', 'age': '23', 'sex': 'male'}
- 元组
**在爬虫中元组和集合很少用到,这里只做简单的介绍;
元组: 类似于列表,但是元组的元素是不能修改只能查看的**# 元组tuple = (1,2,3)
- 集合
集合:类似数学中的集合,每个集合中的元素是无序的,不可以有重复的对象,因此可以通过集合把重复的数据去除!
# 集合list = [1,1,2,2,3,4,5] set = set(list)# result {1,2,3,4,5}
Python文件操作
# 打开文件open(name,[, mode[,buffering]])f = open('/Users/GreetingText/PycharmProjects/demo/hello.txt')# 读写文件f = open('/Users/GreetingText/PycharmProjects/demo/hello.txt', 'w')f.write('Hello World')f = open('/Users/GreetingText/PycharmProjects/demo/hello.txt', 'r')content = f.read()print(content)# result Hello World# 关闭文件f.close()
爬虫原理
多页面爬虫流程
如何安装Python环境?
Mac 系统自带Python 2.7,安装 新版本请前往官网下载,安装成功之后,在命令行输入python3 如图:
工欲善其事,必先利其器
推荐PyCharm
拿走不谢!
推荐两个第三方库
- Beautiful Soup
- Scrapy
QuickDemo
安装Scrapy并创建项目
pip install scrapyscrapy startproject QuickDemocd QuickDemo
在spiders目录下创建test_spilder.py文件
具体代码(需要事先安装BeautifulSoup库)
# -*- coding:utf-8 -*-import scrapyfrom bs4 import BeautifulSoupclass tsSpride(scrapy.Spider): name = 'test' # 爬虫的唯一名字,在项目中爬虫名字一定不能重复 # start_requests() 必须返回一个迭代的Request def start_requests(self): # 待爬取的URL列表 urls = ['http://www.jianshu.com/',] # 模拟浏览器 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'} for url in urls: yield scrapy.Request(url=url, headers=headers, callback=self.parse) # 处理每个请求的下载响应 def parse(self, response): soup = BeautifulSoup(response.body, 'html.parser') titles = soup.find_all('a', 'title') for title in titles: print(title.string) try: file = open(r'/Users/GreetingText/QuickDemo/jianshu.txt', 'w') # 将爬取到的文章题目写入txt中 for title in titles: file.write(title.string + '\n') finally: if file: # 关闭文件(很重要) file.close()
在命令行输入
scrapy crawl test
爬取数据成功如图:
而且项目里面也生成了一个jianshu.txt文件
打开jianshu.txt如图: