Scrapy는 웹 크롤러이며 거미를 만들었습니다. 거미가 2 개의 링크 본문이있는 2 개의 html 파일을 만들길 원합니다. 생성 된 html 파일이 비어 있습니다.이 xpath 표현식이 작동하지 않는 이유는 무엇입니까?
import scrapy
from scrapy.selector import Selector
from scrapy.http import HtmlResponse
class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
x=response.xpath("//body/text()").extract()
filename = response.url.split("/")[-2] + '.html'
with open(filename, 'wb') as f:
f.write(x)
body를 복사하는 데 사용할 다른 xpath 표현식은 무엇입니까? response.xpath ("// body"). 추출()을 시도했으나 작동하지 않았습니다. response.body는 작동하지만 xpath를 배우고 싶습니다. – user6658170
정확히 HTML 파일로 끝날 것으로 예상되는 질문에 대해 명확하게 설명하면 도움이됩니다. 서버가 반환 한 디스크에 디스크를 쓰려면 XPath가 전혀 필요하지 않습니다. – Markus
html 파일에 body 요소가 있어야합니다. 그 작업을 수행하면 특정 클래스가있는 모든 div 요소를 수집하게됩니다. – user6658170