zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    php静态调用非静态方法
    phalcon 框架3.0更新时报错
    centos7.5更换docker-ce镜像源
    腾讯云更换镜像源遇到的坑
    php cli模式下调试
    审查php.ini自动分析程序
    docker WARNING: IPv4 forwarding is disabled. Networking will not work.
    git常用命令,制作缩写命令
    学习GRPC(一) 简单实现
    mac与linux服务器之间使用ssh互通有无
  • 原文地址:https://www.cnblogs.com/passagain/p/10806659.html
Copyright © 2011-2022 走看看