Tôi đang sử dụng Python.org phiên bản 2.7 64 bit trên Windows Vista 64 bit. Tôi đã được thử nghiệm mã Scrapy sau để đệ quy cạo tất cả các trang tại khu vực này www.whoscored.com, mà là cho các thống kê bóng đá:HTTP 403 Câu trả lời khi sử dụng Python Scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from scrapy.item import Item
from scrapy.spider import BaseSpider
from scrapy import log
from scrapy.cmdline import execute
from scrapy.utils.markup import remove_tags
class ExampleSpider(CrawlSpider):
name = "goal3"
allowed_domains = ["whoscored.com"]
start_urls = ["http://www.whoscored.com/"]
rules = [Rule(SgmlLinkExtractor(allow=()),
follow=True),
Rule(SgmlLinkExtractor(allow=()), callback='parse_item')
]
def parse_item(self,response):
self.log('A response from %s just arrived!' % response.url)
scripts = response.selector.xpath("normalize-space(//title)")
for scripts in scripts:
body = response.xpath('//p').extract()
body2 = "".join(body)
print remove_tags(body2).encode('utf-8')
execute(['scrapy','crawl','goal3'])
Mã này được thực hiện mà không cần bất kỳ lỗi nào, tuy nhiên trong những 4623 trang cạo , 217 có mã phản hồi HTTP là 200, 2 có mã 302 và 4404 nhận được phản hồi 403. Bất cứ ai có thể nhìn thấy bất cứ điều gì ngay lập tức rõ ràng trong mã là tại sao điều này có thể được? Đây có phải là biện pháp chống lừa đảo từ trang web không? Thực hành thông thường có làm chậm số lần gửi để ngăn điều này xảy ra không?
Cảm ơn
cảm ơn bạn đã trả lời ... vâng, tôi e rằng nó sẽ là thứ gì đó có liên quan đến việc cạo. tôi sẽ đọc những tài liệu đó ngay bây giờ. cảm ơn. – gdogg371