前提・実現したいこと
vscodeのターミナルからpythonを実行していたんですが、突然できなくなりました。
原因と解決方法を教えていただきたいです。
載せているプログラム以外はできているようです。
このプログラム内に変な点があるのでしょうか?
**これを追加したらできなくなりました。**というコードを記述するまでは実行できていました。
発生している問題・エラーメッセージ
エラーは特に出ていません。
エラーメッセージ
該当のソースコード
python
1from selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3import chromedriver_binary 4from selenium.webdriver.common.action_chains import ActionChains 5from selenium.webdriver.chrome.options import Options 6from time import sleep, time 7import random 8import requests 9from bs4 import BeautifulSoup 10import re 11from fake_useragent import UserAgent 12import openpyxl 13 14def get_keyword(ws, keyword_lists): 15 i = 2 16 while not ws.cell(i, 1).value is None: 17 print(ws.cell(i, 2).value) 18 keyword = ws.cell(i, 2).value 19 keyword_lists.append(keyword) 20 i = i + 1 21 22 if keyword == 'None': 23 break 24 25def link_search(keyword): 26 driver.get('https://www.google.co.jp') 27 28 search_bar = driver.find_element_by_name("q") 29 search_bar.send_keys(keyword) 30 search_bar.submit() 31 # pythonと検索 32 sleep(8) 33 try: 34 # 検索結果で出てきたリンクを配列に入れる 35 for elem_h3 in driver.find_elements_by_xpath('//a/h3'): 36 i =+ 1 37 elem_a = elem_h3.find_element_by_xpath('..') 38 link_lists.append(elem_a.get_attribute('href')) 39 40 if i > 6: 41 break 42 43 except: 44 print('なし') 45 46def access(link_lists, keyword): 47 mail = '' 48 49 # 取得したリンクにアクセスして該当キーワードがあるか 50 for link in link_lists: 51 # スクレイピング対象の URL にリクエストを送り HTML を取得する 52 res = requests.get(link,headers=header) 53 # レスポンスの HTML から BeautifulSoup オブジェクトを作る 54 soup = BeautifulSoup(res.text, 'html.parser') 55 56 print(link) 57 58 # 完全一致したら処理終了 59 if soup.find(text=keyword): 60 hantei_num = 3 61 mail = soup.find(text=keyword) 62 print('-------完全一致--------') 63 print(mail) 64 return hantei_num, mail, link 65 66 # 似たようなものがあれば 67 if soup.find(text=re.compile(keyword)): 68 hantei_num = 2 69 mail = soup.find(text=re.compile(keyword)) 70 print('-------似ている--------') 71 print(mail) 72 return hantei_num, mail, link 73 74 sleep(sleeptime) 75 # 何もないので 76 hantei_num = 1 77 link = '' 78 return hantei_num, mail, link 79 80# これを追加したらできなくなりました。 81def ex(ex_arry, ex_row): 82 # Excelに登録 83 ex_col = 2 84 for ex_item in ex_arry: 85 cell = ws.cell( row=ex_row, column=ex_col ) 86 cell.value = ex_item 87 ex_col =+ 1 88 wb.save(ex_name) 89# これを追加したらできなくなりました。 90 91if __name__ == '__main__': 92 # アクセスの定義づけ 93 options = Options() 94 options.add_argument('--headless') 95 driver = webdriver.Chrome(options=options) 96 ua = UserAgent() 97 header = {'user-agent':ua.chrome} 98 99 ex_name = "email.xlsx" 100 wb = openpyxl.load_workbook( ex_name ) 101 ws = wb[ "シート1" ] 102 ex_row = 1 # シート行 103 104 # 5〜10のランダム数字一時停止にしよう 105 sleeptime = random.randint(5,10) 106 107 # メールアドレスリスト 108 keyword_lists = [] 109 # 判定 110 hantei = ['×', '異なる', '同一'] 111 112 # get_keyword(ws, keyword_lists) 113 114 for keyword in keyword_lists: 115 # Googleの検索リンク初期化 116 link_lists = [] 117 118 # 該当するリンクを取得 119 link_search(keyword) 120 sleep(sleeptime) 121 print(keyword) 122 print('キーワード検索') 123 124 # メールアドレスのあるリンクをチェック 125 # 戻り値アドレス、判定num、リンクを変数に入れる 126 mail_item, h_num, link = access(link_lists, keyword) 127 print('--------結果------') 128 print(mail_item) 129 print(h_num) 130 print(link) 131 print('------------------') 132 # エクセルに追加 133 134 # これを追加したらできなくなりました。 135 ex_arry = [] 136 ex_arry.append(link) 137 ex_arry.append(mail_item) 138 ex_arry.append(hantei[h_num]) 139 ex(ex_arry, ex_row) 140 ex_row =+ 1 141# これを追加したらできなくなりました。
試したこと
vscodeの再起動をしましたがダメでした。
補足情報(FW/ツールのバージョンなど)
which python
/Users/名前/opt/anaconda3/bin/python
python --version
Python 3.8.8
mac
vscode
vscode 左下も python 3.8.8 64-bit('base': conda)となっています
ただ変わったことが、vscodeのターミナルを使用していますが、下記の画像「Python」となっているところが実行できていた時は「Python3.8.8」となっていました。
zshとなっているところはその前はbashだったかも。。?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。