1

什么是爬虫?

一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息

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


PyCharm破解方法拿走不谢!

推荐两个第三方库

QuickDemo

安装Scrapy并创建项目

pip install scrapy
scrapy startproject QuickDemo
cd QuickDemo

在spiders目录下创建test_spilder.py文件

具体代码(需要事先安装BeautifulSoup库)

# -*- coding:utf-8 -*-
import scrapy
from bs4 import BeautifulSoup


class 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如图:

以下是参考链接

本文参考文章

BeautifulSoup官网

Scrapy官网

windows安装Python3

Mac安装Python3


落山基胡扔队
505 声望9 粉丝

有梦想的咸鱼