[英]Data Scrape from a website to a csv file format using python and beautifulsoup
[英]how to scrape multipage website with python and export data into .csv file?
我想使用python抓取以下網站,並且需要將抓取的數據導出到CSV文件中:
http://www.swisswine.ch/en/producer?search=&&
該網站包括154頁相關搜索。 我需要調用每個頁面並想抓取數據,但是我的腳本無法連續調用下一頁。 只刮一頁數據。
在這里,我分配的值是i <153,因此該腳本僅在第154頁上運行,並提供了10個數據。 我需要第一頁到第154頁的數據
一旦運行腳本,如何從所有頁面抓取全部數據,以及如何將數據導出為CSV文件?
我的腳本如下
import csv
import requests
from bs4 import BeautifulSoup
i = 0
while i < 153:
url = ("http://www.swisswine.ch/en/producer?search=&&&page=" + str(i))
r = requests.get(url)
i=+1
r.content
soup = BeautifulSoup(r.content)
print (soup.prettify())
g_data = soup.find_all("ul", {"class": "contact-information"})
for item in g_data:
print(item.text)
您還應該將HTML解析代碼放到循環下面 。 而且您沒有正確地遞增i
變量(感謝@MattDMo):
import csv
import requests
from bs4 import BeautifulSoup
i = 0
while i < 153:
url = ("http://www.swisswine.ch/en/producer?search=&&&page=" + str(i))
r = requests.get(url)
i += 1
soup = BeautifulSoup(r.content)
print (soup.prettify())
g_data = soup.find_all("ul", {"class": "contact-information"})
for item in g_data:
print(item.text)
我還將改進以下內容:
使用requests.Session()
維護網絡抓取會話,這也將帶來性能提升:
如果您要向同一主機發出多個請求,則基礎TCP連接將被重用,這可能會導致性能顯着提高
明確說明BeautifulSoup
的基礎解析器:
soup = BeautifulSoup(r.content, "html.parser") # or "lxml", or "html5lib"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.