Perangkak Python perlu merangkak sejumlah 65 halaman data dan bilangan lajur dalam setiap halaman data adalah tidak pasti. Sekarang saya boleh menangkap data setiap lajur, tetapi kerana bilangan lajur tidak pasti, nama fail yang ditulis tidak dapat ditentukan. Masalahnya ialah bagaimana untuk menulis data lajur ke-x ke dalam fail ke-x. Iaitu, bagaimana untuk memilih secara dinamik nama fail file=. Kodnya adalah seperti berikut:
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=)
Struktur halaman web adalah seperti berikut Setiap teg tr ialah lajur, dan data khusus yang akan ditangkap terletak dalam setiap teg td
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
Jangan tentukan objek fail terbuka dahulu, anda boleh membuka operasi fail yang sepadan berdasarkan bilangan lajur