ニュース記事の見出しとその日時を抽出する為にWebスクレイピングを行ったのですが、以下のようなエラーがでてしまいました。
for文でp=500のページとp=501のページのニュース記事一覧の見出しと日時を抽出しています。
入力
import time import requests import pandas as pd from bs4 import BeautifulSoup df = pd.DataFrame() num = 500 for i in range(2): num = num + i url = "https://ーーーーーーーーーーーーーー/?news_id=KBN2C910K&p="+str(num) # urlを引数に指定して、HTTPリクエストを送信してHTMLを取得 response = requests.get(url) time.sleep(2) # 文字コードを自動でエンコーディング response.encoding = response.apparent_encoding bs = BeautifulSoup(response.text, 'html.parser') items = bs.find_all("div",attrs={"class","entry"}) for item in items: itemName = item.find("h3", attrs={"class","entry-title"}) time = item.find("p", attrs={"class", "update-time"}) addrow = pd.Series([time,itemName]) df = df.append(addrow, ignore_index=True) df
出力
TypeError Traceback (most recent call last) <ipython-input-39-51594f6a86c5> in <module> 14 # urlを引数に指定して、HTTPリクエストを送信してHTMLを取得 15 response = requests.get(url) ---> 16 time.sleep(2) 17 18 # 文字コードを自動でエンコーディング TypeError: 'NoneType' object is not callable
> for文でp=500のページとp=501のページ
> for i in range(2):
> num = num + i
> url = "https://ーーーーーーーーーーーーーー/?news_id=KBN2C910K&p="+str(num)
上記ですと501と502になりませんか?
num = 500
for i in range(2):
num = num + i
url = "https://ーーーーーーーーーーーーーー/?news_id=KBN2C910K&p="+str(num)
print(url) #~p=500,~p=501
最初にnum=500と変数定義しているのでfor文回して上記のコードですと~p=500,~p=501と出力されるのですが、すいません。根本から間違えていたらご教示お願いします。
すみません。 iと1と読み間違えていました。
回答1件
あなたの回答
tips
プレビュー