Я был в тупике на этом пару дней, поэтому любая помощь будет принята с благодарностью.Мой код работает в pycharm и отлично записывает в файл, но всякий раз, когда я пытаюсь запустить мой файл из терминала, он не записывает ни в какой файл CSV или что-либо еще, но код все еще работает отлично.
Я дал все необходимые разрешения, такие как «запись» и «чтение» для всех приложений.
Я действительно думаю, что мне просто нужна пара строк кода, чтобы помочь найти нужный каталог или что-то в этом роде?это то, что я читал, но я, честно говоря, настолько новичок в этом типе вещей, что я не уверен, какой код мне нужен для этого.
Вот мой код, он очищает контактную информацию от Zillowсчета
from selenium import webdriver
import pyperclip
from bs4 import BeautifulSoup
import time
import pandas
from csv import writer
import sys
import os
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
#Gets desired location from cmd line args
if len(sys.argv) > 1:
address = ' '.join(sys.argv[1:])
else:
address = pyperclip.paste()
#Chrome webdriver filepath...Chromedriver version 74
driver = webdriver.Chrome(r'C:\Users\mfoytlin\Desktop\chromedriver.exe')
driver.get('https://www.zillow.com/lender-directory/?sort=Relevance&location=' + address)
time.sleep(3)
#Get Page HTML Source
soup = BeautifulSoup(driver.page_source, 'html.parser')
time.sleep(3)
#href_links is really just the profile stuff itself not jsut the links
href_links = soup.findAll('div', {'class': 'ld-lender-card ld-lender-card_bank'})
pages = driver.find_element_by_class_name('zsg-pagination')
num_pages_list = pages.find_elements_by_tag_name('li')
next_button = driver.find_element_by_class_name('zsg-pagination-next')
for page in range(int(num_pages_list[-2].text)):
print(num_pages_list[-2].text)
soup = BeautifulSoup(driver.page_source, 'html.parser')
profile_links = driver.find_elements_by_xpath("//div[@class='ld-lender-info-column']//h2//a")
with open('posts.csv', 'w') as csv_file:
csv_writer = writer(csv_file)
headers = ['Address']
csv_writer.writerow(headers)
profile_links = driver.find_elements_by_xpath("//div[@class='ld-lender-info-column']//h2//a")
for profile in range(len(profile_links)):
profile_links = driver.find_elements_by_xpath("//div[@class='ld-lender-info-column']//h2//a")
driver.execute_script("arguments[0].click();", profile_links[profile])
time.sleep(2)
soup = BeautifulSoup(driver.page_source, 'html.parser')
trial = soup.findAll('dl', {'class': 'zsg-list_definition'})
address = trial[0].dd.text
csv_writer.writerow([address])
driver.back()
time.sleep(2)
soup = BeautifulSoup(driver.page_source, 'html.parser')
profile_links = driver.find_elements_by_xpath("//div[@class='ld-lender-info-column']//h2//a")
href_links = soup.findAll('div', {'class': 'ld-lender-card ld-lender-card_bank'})
pages = driver.find_element_by_class_name('zsg-pagination')
num_pages_list = pages.find_elements_by_tag_name('li')
next_button = driver.find_element_by_class_name('zsg-pagination-next')
next_button.click()
time.sleep(2)