我是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 是输出,由于某种原因,解析功能无效,但抓取每个链接抓取
我做错了什么?在这个简单的代码?
答案 0 :(得分:1)
问题是您的网址以“%0D%0A”结尾。如果您将scrapy日志中的一个URL输入浏览器,您将看到一个屏幕说明:
“输入的邮政编码格式错误。”
“%0D%0A”是您的文件中的换行符,这些换行符在加载文件并将其拆分为行时以某种方式保留。删除它们你会没事的。
轻松修复 - 添加对strip()的调用:
yourResult = [line.strip() for line in crimefile.readlines()]