我有问题,从URL创建CSV文件,rog.asus.com/motherboards/rog-maximus/rog-maximus-xi-formula-model/spec/.我需要从页面规格下载有关主板,现在我只有头在Python中生成,但我不知道如何下载itemcontent.这是我得到了在CSV中创建头.
import requests
from bs4 import BeautifulSoup
import csv
# Wskazany link
url = "https://rog.asus.com/pl/motherboards/rog-maximus/rog-maximus-xi-formula-model/spec/"
# Pobierz zawartość strony
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Znajdź wszystkie elementy <div> z odpowiednią klasą
spec_elements = soup.find_all('div', class_='ProductSpecSingle__productSpecItemRow__3sjMJ')
# Nagłówek do zapisania w pliku CSV
header = ['Procesor', 'Chipset', 'Pamięć', 'Grafika', 'Obsługa Multi-GPU',
'Gniazda rozszerzeń', 'Magazyn danych', 'Sieć LAN', 'Bezprzewodowa sieć']
# Słownik do przechowywania danych specyfikacyjnych
data_dict = {key: '' for key in header}
# Dla każdego elementu <div>
for spec_element in spec_elements:
# Znajdź element <h2> z odpowiednią klasą
spec_title_element = spec_element.find('h2', class_='ProductSpecSingle__productSpecItemTitle__8gSrN')
# Znajdź element <span> z odpowiednią klasą
spec_value_element = spec_element.find('span', class_='ProductSpecSingle__descriptionItemValue__lVa0O')
# Sprawdź, czy elementy zostały znalezione i czy zawierają tekst
if spec_title_element and spec_value_element and spec_value_element.text.strip():
# Pobierz tekst z elementów
spec_title = spec_title_element.text.strip()
spec_value = spec_value_element.text.strip()
# Sprawdź, czy nagłówek jest w naszej liście nagłówków
for header_name in header:
if header_name.lower() in spec_title.lower():
data_dict[header_name] = spec_value
# Nazwa pliku CSV
csv_filename = 'ASUS/specyfikacja_plyty_glownej.csv'
# Zapisz do pliku CSV z kodowaniem UTF-8
with open(csv_filename, mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
# Zapisz nagłówek
writer.writerow(header)
# Zapisz dane
writer.writerow([data_dict[header_name] for header_name in header])
print(f'Utworzono plik CSV: {csv_filename} z danymi specyfikacji.')
字符串
我需要使用Python生成CSV与技术规格的所有细节。
1条答案
按热度按时间elcex8rz1#
这里有两个主要问题-检查你的
response
/soup
似乎网站正在阻止请求,所以添加一个用户代理:字符串
其次,
javascript
动态呈现内容,requests
不支持这一点-因此有两个选项:1.您知道产品的内部ID,请使用API请求其他信息。
1.提取页脚的脚本部分中的信息,并通过
json.loads()
进行转换,然后像dict
一样进行交互以选择jour信息:型
示例
型