Heim > Fragen und Antworten > Hauptteil
Der Python-Crawler muss insgesamt 65 Datenseiten crawlen, und die Anzahl der Spalten auf jeder Datenseite ist ungewiss. Jetzt kann ich die Daten jeder Spalte erfassen, aber da die Anzahl der Spalten unsicher ist, kann der geschriebene Dateiname nicht bestimmt werden. Das Problem besteht darin, wie die Daten der x-ten Spalte in die x-te Datei geschrieben werden. Das heißt, wie man den Dateinamen file= dynamisch auswählt. Der Code lautet wie folgt:
f_1 = open('fitment/1.txt', 'a')
f_2 = open('fitment/2.txt', 'a')
f_3 = open('fitment/3.txt', 'a')
for i in range(66):
pr = random.choice(proxy)
url = 'https://*****' + str(i) + '****'
page_url = requests.get(url, headers=head, proxies=pr)
page_get = page_url.text
page_text = BeautifulSoup(page_get, 'lxml')
fitment_1 = page_text.find_all('tr', {'class': 'fitment listRowEven'})
for each_tag_1 in fitment_1:
td_text_1 = each_tag_1.find_all('td')
for x in range(len(td_text_1)+1):
print(td_text_1[x].string, file=)
Die Struktur der Webseite ist wie folgt: Jedes tr-Tag ist eine Spalte, und die spezifischen zu erfassenden Daten befinden sich in jedem td-Tag
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
ringa_lee2017-06-12 09:25:40
先不要定义好open文件对象,可以根据列数打开相应的文件操作
with open('列数.txt', 'a') as f:
f.write('内容')