Измените ссылку, как только Selenium Web Scraper будет готов, сохраните ее в другом файле CSV и продолжайте, пока не останется больше дополнительных ссылок. - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть веб-скребок Selenium python, который в настоящее время настроен на получение одной указанной ссылки c. Вот фрагмент кода:

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
chrome_path = r'//usr/local/Caskroom/chromedriver/81.0.4044.69/chromedriver'

driver = webdriver.Chrome(executable_path=chrome_path,
                      chrome_options=options
                     )

driver.get(
"https://www.nytimes.com/search?dropmab=true&endDate=20100101&query=&sections=Business|nyt%3A%2F%2Fsection%2F0415b2b0-513a-5e78-80da-21ab770cb753&sort=best&startDate=20070101")

Скребок нажимает кнопку на странице несколько раз, а затем очищает все данные и сохраняет их в CSV-файле.

Как мне получить файл python для изменения ссылки, как только программа будет выполнена, запустив ее один раз и сохранив файл csv, а затем запустите программу для этой новой ссылки и сохраните файл как новый файл csv

1 Ответ

1 голос
/ 14 апреля 2020

Предположим, есть список URL. Мы собираемся перебрать этот список URL. Нам не нужно создавать новый браузер для каждого URL.

urls = ['url1.com', 'url2.com', 'url3.com']

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
chrome_path = r'//usr/local/Caskroom/chromedriver/81.0.4044.69/chromedriver'

driver = webdriver.Chrome(executable_path=chrome_path,
                      chrome_options=options
                     )

for index, url in enumerate(urls):
    driver.get(url)
    #Web scraping code goes here
    with open(str(index+1) + '.csv', 'w', newline='') as csvfile:
        #CSV writing code goes here


browser.quit()

Примеры чтения и записи CSV можно посмотреть здесь https://docs.python.org/3/library/csv.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...