#selenium #scrapy #phantomjs
#селен #scrapy #phantomjs
Вопрос:
Я использую scrapy selenium phantomjs для получения данных из Интернета, в котором есть javascript, загружающий данные. Когда я использую chrome. это работает хорошо, но когда я меняю браузер на phantomjs, он не может работать (не удается загрузить данные с помощью javascript). Вот код (платформа Windows 7):
class MyCustomDownloaderMiddleware(object):
def __init__(self):
#self.driver = webdriver.Chrome()
self.driver = webdriver.PhantomJS()
def process_request(self, request, spider):
if r"http://wenshu.court.gov.cn/list/list/?sorttype=1amp;conditions=searchWord QWJS 全文检索:成都银行股份有限公司" == request.url:
self.driver.get(request.url)
try:
element = WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, "dataItem")))
body = self.driver.page_source
return HtmlResponse(self.driver.current_url, body=body, encoding='utf-8', request=request)
except:
body = self.driver.page_source
return HtmlResponse(self.driver.current_url, body=body, encoding='utf-8', request=request)
else:
pass
def __del__(self):
self.driver.quit()
Комментарии:
1. Что происходит на самом деле?
WebDriverWait
ожидает появления какого-либо элемента, истекло ли время ожидания?2. да, время истекло, и я получил ответ исходного html-кода без данных, которые должны быть загружены javascrpit