はじめて Pythonを利用としているのですが、理解不足でエラーの解消ができないでおります。
NHK WORLD NEWSをWEBから 連続して、取り出して、EXCELに表示しようとしています。
作業予定としては 1⃣ 別のpy でURLのリストを取込作成 2⃣ 今回、表示しているpyの Urllistへ EXCEL経由で取り入れて、連続して読み込み、EXCELへリストアップしようとしています。
1番目のURLは問題なく EXCELへ取り込めるのですが、2番目からの取込がうまくいきません。
『ConnectionRefusedError: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。』というエラーが出ます。
解説文が WEBで検索すると多くでているのですが、理解できずに解決策が見つかりません。
(Win10 hHome 22H2、EXCEL365 Ver2306、Python3.11.4、Selenium2.0.9.0、openpyxl3.1.2 cmdのウィンドウがすぐに閉じてしまうので、読み込めず違いがあるかもわかりません?)
解決策、また、より良いコード等がありましたら、ご指摘、ご指導よろしくお願いします。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs
import openpyxl
import datetime
CHROMEDRIVER = r"driver/chromedriver.exe"
chrome_service = fs.Service(executable_path=CHROMEDRIVER)
browser = webdriver.Chrome(service=chrome_service)
#++++++++++++++++++++++++++++++++++++
data_list = []
Urllist_list = []
#++++++++++++++++++++++++++++++++++++
Urllist_list = [
"https://www3.nhk.or.jp/nhkworld/en/news/20230706 …
"https://www3.nhk.or.jp/nhkworld/en/news/20230706 …
"https://www3.nhk.or.jp/nhkworld/en/news/20230706 …
"https://www3.nhk.or.jp/nhkworld/en/news/20230706 …
]
#++++++++++++++++++++++++++++++++++++
wb_new = openpyxl.Workbook()
ws_new = wb_new.active
row_num = 1
#########################################################browser.implicitly_wait(15)
##################################################################################################################
for Urllist in Urllist_list:
dt = datetime.datetime.now().date()
now = datetime.datetime.now()
dm = now.strftime("%x %X")
ws_new.cell(row_num, 1).value = str(Urllist)
ws_new.cell(row_num + 1, 1).value = str(dm)
row_num = row_num + 2
######################################################
browser.get(str(Urllist))
######################################################
links = browser.find_elements(By.TAG_NAME,"h1")
for link in links:
link_text = link.text
link_url = link.get_attribute("a")
data_list.append([link_text])
for data in data_list:
if data[0] != "" and data[0] != "News":
ws_new.cell(row_num, 2).value = data[0]
row_num = row_num + 1
######################################################
links = browser.find_elements(By.TAG_NAME,"p")
#data_list = []
for link in links:
link_text = link.text
link_url = link.get_attribute("p")
data_list.append([link_text])
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++
for data in data_list:
if data[0] != "" :
if "Your subscription plan doesn" in data[0]:
break
if "*You will leave" in data[0] :
break
if data[0] != "News":
# テキスト
ws_new.cell(row_num, 3).value = data[0]
row_num = row_num + 1
######################################################
browser.quit()
######################################################
ws_new.title = "NHKNEWS"
wb_new.save("NHKNEWS.xlsx")
######################################################
No.1ベストアンサー
- 回答日時:
>ConnectionRefusedError
相手(NHK)から悪意あるアクセスとして接続拒否されてるのでは。
明示的に1分待つようにしてテストしてみるとか。
回答ありがとうございます。
browser.implicitly_wait(60) で 試してみましたが、結果は同様でした。
(ほかの方法があるとは思いますが、)
JAPANTIMES や YAHOO FINANCE でも、同種のデータ取得を 試していますが、1個目は取得できるが、2個目に入る時に、NHK WORLD NEWSの場合と同様に エラーとなります。
確かかどうかは不明ですが、『悪意あるアクセスとして接続拒否』 では、ないのでは、と思われるのですが―――。
(この連絡を以前にさしあげたつもりでしたが、リストアップされていないので、送信ミスだったと思われます。失礼しました。)
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- VPN 何これ 1 2022/04/19 01:32
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のIP取得
-
どちのほうがすきですか?
-
Python - Excel で Webからデー...
-
STLのlistで重複するものだけを...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
ACCESS テキストボックスを隙...
-
構造体の各データの表示につい...
-
文字の横にプルダウンを表示さ...
-
メモリをアドレスを直接指定し...
-
回数を指定しないで空白行まで...
-
[python] 文字列を変数名として...
-
16進の10進変換について
-
セレクトボックスである項目を...
-
swift 文字コードから文字に変...
-
セレクトメニューで2つの項目...
-
C言語について
-
Use of uninitialized value ---
-
セレクトメニューで選んだ値を...
-
【C#】数値の範囲チェックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どちのほうがすきですか?
-
C# GetFilesで複数のファイルの...
-
Python - Excel で Webからデー...
-
STLのlistで重複するものだけを...
-
可変引数をconstで参照渡し
-
Pythonでのアニメーション
-
PerlでXMLを解析して出力する。
-
複数のIP取得
-
【python】辞書作成(ネスト)を...
-
カーニハンの”C言語”の参照マニ...
-
C言語:単語カウント
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
Pythonでターミナルに文字を出...
-
16進の10進変換について
-
セレクトメニューで2つの項目...
-
実行時エラー 3020の対策
-
文字の横にプルダウンを表示さ...
-
FindFirst を複数条件で検索
おすすめ情報
16行の data_list = [] を 49行へ
68行の #data_list = [] の # を 外す。
訂正を お願いします。
54行 link_url = link.get_attribute("a")
72行 link_url = link.get_attribute("p")
は 不要でした。 よろしく お願いします。