0
현재 내 스크립트는 1 개의 데이터를 긁어냅니다. 이제 20 개 이상의 URL을 긁어서 코드를 동적으로 만들려고합니다. 어떻게하면 좋은 해결책을 찾을 수 없습니까? "items/nordfront_items"의 값을 처리하고 함수에 전달합니다. 서브 클래스를 사용하는 것이 더 나은 해결책일까요? 불행히도 나는 모른다 :
동적 인 해결책을 찾아 주셔서 감사합니다.스크립트를보다 동적으로 만들어서 함수 또는 클래스 구현
기존 코드, 기능 없음
import urllib.request
import lxml.etree as ET
from pipeline import NordfrontPipeline
opener = urllib.request.build_opener()
tree = ET.parse(opener.open('https://nordfront.se/feed'))
items = [{'title': item.find('title').text, 'link': item.find('link').text, 'pubdate': item.find('pubDate').text} for item in tree.xpath("/rss/channel/item")]
pipeline = NordfrontPipeline()
for item in items:
pipeline.process_item(item, None)
더 동적 코드, 더 나은 솔루션?
def spider(url):
opener = urllib.request.build_opener()
tree = ET.parse(opener.open(url))
return [{'title': item.find('title').text, 'link': item.find('link').text, 'pubdate': item.find('pubDate').text} for item in tree.xpath("/rss/channel/item")]
을 또는 직접 사용 :
import urllib.request
import lxml.etree as ET
from pipeline import NordfrontPipeline
nordfront_url = "http://doesntmatter.com/feed"
nordfront_pipe = NordfrontPipeline()
nordfront_items = ?
nordfront_exec = spider(nordfront_url, nordfront_pipe, nordfront_items)
def spider(url, pipe, items)
opener = urllib.request.build_opener()
tree = ET.parse(opener.open(url))
# items = [{'title': item.find('title').text, 'link': item.find('link').text, 'pubdate': item.find('pubDate').text} for item in tree.xpath("/rss/channel/item")]