私はPythonでウェブスクレイピングの世界では初めてですが、開発したい究極のスキルは、スクレイプされたデータをデータベースに保存し、そのデータを定期的にリフレッシュさせることです。Python Beautiful Soup WebScraping:新しいデータのみを返しますか?
私の質問は次のとおりです。データリクエスト(時間、帯域幅の使用)をどのように節約し、最後にスクリプトを実行してから新しいデータのみを要求するのですか?
例えばは、私のコードは、ウェブサイトAutotrader上の車のリストを返します。
data = pd.DataFrame(columns=['A'])
#Print the name_box results to see them
for listing in range(len(name_box)):
temp = name_box[listing]
value = temp.text
data = data.append({'A' : value}, ignore_index=True)
:代わりにデータベースを使用しての
が
from bs4 import BeautifulSoup
import requests
#URL and headers so it thinks we are a browser
url = "https://www.autotrader.co.uk/car-search?search-target=usedcars&is-quick-search=true&radius=&onesearchad=used&onesearchad=nearlynew&onesearchad=new&make=AC&model=&price-from=&price-to=&postcode=sw65bg"
headers = {'User-Agent' : 'Mozilla/5.0'}
#Request
request = requests.get(url, headers)
soup = BeautifulSoup(request.text, "html.parser")
#Find the name box
name_box = soup.find_all('h2', attrs={'class' : 'listing-title'})
#Print the name_box results to see them
for listing in range(len(name_box)):
temp = name_box[listing]
value = temp.text
print(value)
、私は私の質問を説明するのを助けるためにデータフレームで出力を保存することができます出力
:
A
0 AC Cobra 6.3 2dr
1 AC Cobra 4.9 MK IV 2dr
2 AC Cobra 3.5 2dr
3 AC Cobra 3.5 2dr
4 AC Cobra 5.3 2dr
5 AC Cobra 5.7
6 AC Cobra 4736 Built By Gardner Douglas 4.7 2dr
7 AC Cobra 5.7
8 AC Cobra 5.7 2dr
9 AC Cobra 5.8
を10 ACコブラは、ウェブサイトに表示された場合には、あります表示されるように新しいエントリを識別できるように、その新しいエントリを表示または追加する方法がありますか?