python 网络爬虫 scapy 下载 论坛帖子链接和标题

由于喜欢玩POE流放之路,所以用这个论坛试试自己的新技能

程序语句都做了注释说明,下面是步骤

1.建立项目

scrapy startproject poebbs

2.建立爬虫

cd poebbs
scrapy genspider poebd http://bbs.17173.com

3.编辑items.py

title = scrapy.Field()
bbslink = scrapy.Field()

4.编辑poebd.py

import scrapy
from poebbs.items import PoebbsItem #一定要记得导入item

class PoebdSpider(scrapy.Spider):
    name = 'poebd'
    allowed_domains = ['bbs.17173.com']
    start_urls = ['http://bbs.17173.com/forum-9987-1.html', #选择了3页内容来爬
                  'http://bbs.17173.com/forum-9987-2.html',
                  'http://bbs.17173.com/forum-9987-3.html'
                  ]

    def parse(self, response):
        sites = response.css('.new')  #需要的内容在class=’new‘内,所以就取了这个范围
        for site in sites:
            item = PoebbsItem()
            item['title'] = site.css('.new .xst::text').extract_first()  #这里是两个class,没有标签标识
            item['bbslink'] = site.css('.new a::attr(href)').extract()[2] #这个网址在同一个class下,低3个a标签内,所以用这个语法
            yield item
     next_page = response.css('.pgs a::attr(href)').extract_first() #获取下一页链接
     yield scrapy.Request(next_page, callback=self.parse, dont_filter=True) #请求下一页继续爬

5.编辑settings.py

FEED_EXPORT_ENCODING ='utf-8'    #加入这两句防止保存中文文件时乱码
FEED_EXPORT_ENCODING = 'gb18030'

6.运行爬虫

scrapy crawl poebd -o note.csv     #保存为表格文件

结果

2019-05-03

原文地址:https://www.cnblogs.com/passagain/p/10806659.html