Python scrapy爬行链接而不是抓取

时间:2017-04-25 16:13:24

标签: python web-scraping scrapy scrapy-spider

我是Scrapy Framework的新手并且正在尝试学习网页抓取 我有一个带有网站页面链接的txt文件,我正在制作这些链接的列表并将它们存储在 start_urls 中,但是解析功能不起作用而且它没有抓取任何东西

这是代码

try:
    import scrapy
except ImportError:
    print "\nERROR IMPORTING THE NESSASARY LIBRARIES\n"

#File with all the links
crimefile = open('links.txt', 'r')
#making a list with all the links
yourResult = [line for line in crimefile.readlines()]

class SpiderMan(scrapy.Spider):
    name = 'man spider'

    #making start_urls equal to that list
    start_urls = yourResult

    def parse(self, response):
        SET_SELECTOR = '.c411Listing.jsResultsList'
        for man in response.css(SET_SELECTOR):
            name = '.c411ListedName a ::text'
            address = '.adr ::text'
            phone = '.c411Phone ::text'
            yield { 

                    'NAME': man.css(name).extract_first(),
                    'ADDRESS': man.css(address).extract_first(),
                    'PHONE': man.css(phone).extract_first(),
                    }

ad here是输出,由于某种原因,解析功能无效,但抓取每个链接抓取

我做错了什么?在这个简单的代码?

1 个答案:

答案 0 :(得分:1)

问题是您的网址以“%0D%0A”结尾。如果您将scrapy日志中的一个URL输入浏览器,您将看到一个屏幕说明:

“输入的邮政编码格式错误。”

“%0D%0A”是您的文件中的换行符,这些换行符在加载文件并将其拆分为行时以某种方式保留。删除它们你会没事的。

轻松修复 - 添加对strip()的调用:

yourResult = [line.strip() for line in crimefile.readlines()]