0. 前言
在B站上看了黑马的scrapy,老师讲的超细致,赞!
本文主要用scrapy的基本操作完成爬取,适合入门级学习。
1. scrapy
scrapy有很多命令,在terminal输入scrapy可以看到
这里我们主要用startproject来创建整个项目,genspider生成爬虫,完成编程以后再crawl一下即可。
首先:scrapy startproject XXXX
就可以在本地找到已经创建好的文件夹
第二步:scrapy genspider hupu “https://bbs.hupu.com”
这一步是创建一个爬虫,注:需要cd进入这个demo文件夹再运行上述命令,就可以得到hupu.py
第三步:设置items
这里是实例化我们需要的“参数名”,类似于字典里的key
import scrapy
class ItcastItem(scrapy.Item):
# define the fields for your item here like:
#下述为每个帖子的信息
author = scrapy.Field()
reply = scrapy.Field()
article_href = scrapy.Field()
reply_number = scrapy.Field()
scan_number = scrapy.Field()
light_number = scrapy.Field()
接着我们就可以在hupu.py实现我们的想法了:
# -*- coding: utf-8 -*-
import scrapy
from ITcast.items import ItcastItem
import re
class HupuSpider(scrapy.Spider):
#必须有name,代表爬虫的名称
name = 'hupu'
#可省略允许域
allowed_domains = ['bbs.hupu.com']
base_url = "https://bbs.hupu.com/bxj-"
offset = 1
#必须有起始url
start_urls = [base_url + str(offset)]
def parse(self, response):
node_list = response.xpath('//*[@id="ajaxtable"]/div[1]/ul/li')
for node in node_list:
item = ItcastItem()
author_name = node.xpath