0
ブラウザのウェブサイトを開くことができず、コード全体が実行されませんでした。端末にもエラーが表示されないので、問題を把握できませんでした。 私のコードでは、xPathを使用してウェブサイトからイベントの詳細を抽出する必要があり、メインページをループしてすべてのイベントの詳細のリストを取得する必要があります。Pythonを使用してセレンを介してウェブサイトを開くことができませんでした
あなたのお役に立てれば幸いです!
import sys
import os
import selenium
import csv
import contextlib
import time
from selenium import webdriver
from time import sleep
from collections import defaultdict
from selenium.common.exceptions import NoSuchElementException,TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
try:
from urlparse import urljoin
from urllib import urlretrieve
except ImportError:
from urllib.parse import urljoin
from urllib.request import urlretrieve
host = "http://www.sportshub.com.sg/sportshubtix/Pages/Home.aspx"
#xPath & CSS selectors
xpath_load_more_button = "//*[@id='togglercal-CalListslide1']/span[1]"
name = '//*[@id="eventCalendarScroll"]/div[2]/div[2]/ul/div[1]/div/dl/dt/a'
date = '//*[@id="eventCalendarScroll"]/div[2]/div[2]/ul/div[1]/div/dl/dd[1]/div'
venue = '//*[@id="eventCalendarScroll"]/div[2]/div[2]/ul/div[1]/div/dl/dd[2]/div'
description = '//*[@id="eventCalendarScroll"]/div[2]/div[2]/ul/div[1]/div/dl/dd[3]/div'
class Crawler(object):
def __init__(self):
self.data = defaultdict(list)
def start(self):
self.driver = webdriver.Firefox()
#self.driver.implicitly_wait(1)
def load_main_page(self):
self.driver.get(host)
def load_page(self, url):
self.driver.get(url)
def load_more_page(self):
try:
self.driver.find_element_by_xpath(xpath_load_more_button).click()
return True
except (NoSuchElementException):
return False
def get_name(self):
try:
event_name = [n.text for n in self.driver.find_element_xpath(name)]
self.data["event_names"] = self.remove_duplicate(self.data["event_names"] + event_name)
except:
print("event invalid")
def remove_duplicate(self, x):
result = []
for i in x:
if i != "":
if i not in result:
result.append(i)
def crawler(self, event):
self.data["event_names"] = event
#self.data["dates"] = []
#self.data["time"] = []
#self.data["venues"] = []
#self.data["description"] = []
print('Crawling Events = {}'.format(event))
self.load_main_page()
def main():
crawler = Crawler()
crawler.start()
main()
エラースタックトレースを共有できますか?観察されたエラーがない場合、トレースレベルのログを設定し、いくつかの情報を取得しようとします。そうでなければ、何がうまくいかないかを見つけるためにコードをデバッグする必要があります。 – DebanjanB