gpt4 book ai didi

python - python中的简单forvalues循环?

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:31 24 4
gpt4 key购买 nike

在 Python 中是否有一种简单的方法来遍历一个简单的数字列表?我想从只有 3 个数字不同的不同 URL 中抓取一些数据?

我是 python 的新手,想不出一个简单的方法来做到这一点。多谢!这是我的代码:

import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://www.example.com/3322")
bsObj = BeautifulSoup(html)
table = bsObj.findAll("table",{"class":"MainContent"})[0]
rows=table.findAll("td")

csvFile = open("/Users/Max/Desktop/file1.csv", 'wt')
writer = csv.writer(csvFile)
try:
for row in rows:
csvRow=[]
for cell in row.findAll(['tr', 'td']):
csvRow.append(cell.get_text())
writer.writerow(csvRow)
finally:
csvFile.close()

在 Stata 中是这样的:

 foreach i of 13 34 55 67{
html = urlopen("http://www.example.com/`i'")
....
}

非常感谢!最大

最佳答案

我已将您的原始代码分解为函数,只是为了更清楚地说明我认为是您问题的答案:使用一个简单的循环和 .format() 来构造 url 和文件名。

import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup

def scrape_url(url):
html = urlopen(url)
bsObj = BeautifulSoup(html)
table = bsObj.findAll("table",{"class":"MainContent"})[0]
rows=table.findAll("td")
return rows

def write_csv_data(path, rows):
csvFile = open(path, 'wt')
writer = csv.writer(csvFile)
try:
for row in rows:
csvRow=[]
for cell in row.findAll(['tr', 'td']):
csvRow.append(cell.get_text())
writer.writerow(csvRow)
finally:
csvFile.close()

for i in (13, 34, 55, 67):
url = "http://www.example.com:3322/{}".format(i)
csv_path = "/Users/MaximilianMandl/Desktop/file-{}.csv".format(i)

rows = scrape_url(url)
write_csv_data(csv_path, rows)

关于python - python中的简单forvalues循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35373236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com