나는 치료뿐만 아니라 파이썬도 처음 사용합니다. 시드 URL을 크롤링하려고 시도했습니다. https://www.health.com/patients/status/.This 시드 URL에 많은 URL이 포함되어 있습니다. .Finally 내가 원하는 ... 각 https://www.health.com/Faci/Details/2 페이지 내부웹 스크래치를 사용하여 데이터 크롤링 및 추출
https://www.health.com/patients/status/ ->https://www.health.com/Faci/Details/2
-> https://www.health.com/Faci/Details/3
-> https://www.health.com/Faci/Details/4
https://www.health.com/Faci/Details/2 -> https://www.health.com/provi/details/64
-> https://www.health.com/provi/details/65
https://www.health.com/Faci/Details/3 -> https://www.health.com/provi/details/70
-> https://www.health.com/provi/details/71
이 https://www.health.com/provi/details/64 https://www.health.com/provi/details/65이 :하지만 국지적 인 URL이 아래와 같이 될 것입니다 씨 URL에서 Faci/세부/#의 somenumber를 포함하는 URL 만 가져 오려는 https://www.health.com/provi/details/#somenumber url에서 데이터를 가져 오려면 어떻게해야합니까? 어떻게하면됩니까?
은 지금부터 나는 settings.py가이 일을하지 않는 file.But에 .I 깊이 제한을 설정하려고 https://www.health.com/provi/details/#somenumber로하지 않을 https://www.health.com/Faci/Details/#somenumber .Its 만 포함 URL을 크롤링 scrapy 튜토리얼과 수에서 아래의 코드를 시도 .
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from news.items import NewsItem
class MySpider(CrawlSpider):
name = 'provdetails.com'
allowed_domains = ['health.com']
start_urls = ['https://www.health.com/patients/status/']
rules = (
Rule(LinkExtractor(allow=('/Faci/Details/\d+',)), follow=True),
Rule(LinkExtractor(allow=('/provi/details/\d+',)),callback='parse_item'),
)
def parse_item(self, response):
self.logger.info('Hi, this is an item page! %s', response.url)
item = NewsItem()
item['id'] = response.xpath("//title/text()").extract()
item['name'] = response.xpath("//title/text()").extract()
item['description'] = response.css('p.introduction::text').extract()
filename='details.txt'
with open(filename, 'wb') as f:
f.write(item)
self.log('Saved file %s' % filename)
return item
더 진행 하시겠습니까?