Konstruowanie wyrażenia regularnego dla adresu URL w liście start_urls w pytonie ramowej scrapy
Jestem bardzo nowa w scrapy, a także wcześniej nie użyłem wyrażeń regularnych
Oto mojespider.py
kod
class ExampleSpider(BaseSpider):
name = "test_code
allowed_domains = ["www.example.com"]
start_urls = [
"http://www.example.com/bookstore/new/1?filter=bookstore",
"http://www.example.com/bookstore/new/2?filter=bookstore",
"http://www.example.com/bookstore/new/3?filter=bookstore",
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
Teraz, jeśli spojrzymy na tostart_urls
wszystkie trzy adresy URL są takie same, z wyjątkiem różnic w wartościach całkowitych2?, 3?
i tak dalej, mam na myśli nieograniczony, według adresów URL obecnych na stronie, teraz, gdy możemy użyć crawlspidera i możemy skonstruować wyrażenie regularne dla adresu URL, jak poniżej,
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
import re
class ExampleSpider(CrawlSpider):
name = 'example.com'
allowed_domains = ['example.com']
start_urls = [
"http://www.example.com/bookstore/new/1?filter=bookstore",
"http://www.example.com/bookstore/new/2?filter=bookstore",
"http://www.example.com/bookstore/new/3?filter=bookstore",
]
rules = (
Rule(SgmlLinkExtractor(allow=(........),))),
)
def parse(self, response):
hxs = HtmlXPathSelector(response)
czy mógłbyś mnie poprowadzić, że jak mogę skonstruować regułę pająka indeksującego dla powyższegostart_url
lista.