Vui lòng xem this spider example trong tài liệu Scrapy. Giải thích là:Scrapy SgmlLinkExtractor bị bỏ qua là bỏ qua các liên kết được phép
Con nhện này sẽ bắt đầu thu thập thông tin trang chủ example.com, thu thập liên kết danh mục và liên kết mục, phân tích cú pháp sau bằng phương pháp parse_item. Đối với mỗi mục phản hồi, một số dữ liệu sẽ được trích xuất từ HTML bằng cách sử dụng XPath, và một Item sẽ được lấp đầy với nó.
Tôi đã sao chép chính xác cùng một con nhện và thay thế "example.com" bằng url ban đầu khác.
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from stb.items import StbItem
class StbSpider(CrawlSpider):
domain_name = "stb"
start_urls = ['http://www.stblaw.com/bios/MAlpuche.htm']
rules = (Rule(SgmlLinkExtractor(allow=(r'/bios/.\w+\.htm',)), callback='parse', follow=True),)
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = StbItem()
item['JD'] = hxs.select('//td[@class="bodycopysmall"]').re('\d\d\d\d\sJ.D.')
return item
SPIDER = StbSpider()
Nhưng nhện của tôi "STB" không thu thập các liên kết từ "/ bios /" vì nó là nghĩa vụ phải làm. Nó chạy url ban đầu, cạo các item['JD']
và ghi nó vào một tập tin và sau đó thoát.
Tại sao SgmlLinkExtractor
bị bỏ qua? Các Rule
được đọc bởi vì nó bắt lỗi cú pháp bên trong dòng Rule
.
Đây có phải là lỗi không? có gì sai trong mã của tôi không? Không có lỗi ngoại trừ một loạt lỗi không được xử lý mà tôi thấy với mọi lần chạy.
Thật tuyệt khi biết tôi đang làm gì sai ở đây. Cảm ơn mọi manh mối. Tôi có hiểu lầm những gì SgmlLinkExtractor
là nghĩa vụ phải làm gì?
Khi tôi thấy "Không có lỗi ngoại trừ một loạt lỗi không được xử lý mà tôi thấy với mọi lần chạy", tôi phải gãi đầu. –
Xin lỗi, tôi thấy Cảnh báo Ngừng sử dụng. Các lỗi mà tôi đã nhìn thấy là do có telnet và vỏ mở cùng một lúc như đã đề cập bởi Pablo Hoffman ở đây http://stackoverflow.com/questions/1767553/twisted-errors-in-scrapy-spider và khi tôi đóng vỏ, tôi không thấy chúng nữa. Bất kỳ manh mối nào tại sao các liên kết được phép không được cạo? – Zeynel