2013-08-29 1 views
0

Так что в основном я хочу использовать Scrapy.org, чтобы очистить форум. Проблема, с которой я сталкиваюсь, заключается в том, что ссылка на каждый поток несколько вдоль этой строки http://mywebsite.com/forum/My-Thread-Name-t213.html Теперь, если я пытаюсь ввести только http://mywebsite.com/forum/t213.html, это не сработает, оно не показывает тему с этим идентификатором, поэтому я действительно не знаю как я мог бы генерировать имя потока и идентификатор каждой темы, чтобы иметь возможность очистить его. Я бы очень признателен за помощь в этом, спасибо заранее!Как очистить несколько нечетный URL с помощью Scrapy

+0

Являются ли идентификаторы потоков в некотором диапазоне, например: t001 - t300? – Talvalin

+0

Кроме того, не могли бы вы привести конкретный пример URL-адреса нити, пожалуйста? – Talvalin

+0

Фактическим адресом будет http://freakz.ro/forum/Spam-Akyzor-Dkill-t251680.html. Идентификаторы потоков находятся в диапазоне от 0 до x вперед, но некоторые из них должны быть удалены, поэтому должны быть идентификаторы, возвращающие страницу с ошибкой, если это помогает. – moonbas3

ответ

0

В отсутствие фактического URL-адреса для тестирования я не могу быть абсолютно уверен, что это сработает. По существу вам нужно использовать регулярное выражение в правиле CrawlSpider, которое начинается с вашего базового URL-адреса и совпадает с ним, плюс любая строка, за которой следует -t, плюс любое число, а затем, наконец, .html.

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.selector import HtmlXPathSelector 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 

class ThreadSpider(CrawlSpider): 
    name = "mywebsite" 
    allowed_domains = ["mywebsite.com"] 
    start_urls = ["http://mywebsite.com/forum"] 
    rules = [Rule(SgmlLinkExtractor(allow = ('/[^/]+-t\d+\.html')), follow=True, 
     callback='parse_item'),] 

    def parse_item(self, response): 
     hxs = HtmlXPathSelector(response) 
     print "We're scraping %s" % response.url 
     # do something with the hxs object 
+0

Глядя снова на это, я обнаружил, что сообщения могут быть доступны по этой ссылке http://freakz.ro/forum/view-post-3382479.html, но опять же, есть удаленные сообщения. Число идет от 0 o inf, так что да, это диапазон. Я думаю, что лучше использовать это, но тогда одна и та же страница может быть очищена 15 раз (# posts/page). – moonbas3