私はPythonコーディングが初めてです。 リスト "myarrayUrl"の10個の特定インデックスの値を、別の空のリスト "final"に追加したい。インデックスの値は変数 "ind_pos"に格納されます。 これらの値を追加しようとすると、csvファイルの同じ行に格納され、間違った場所にカンマが置かれます。 最終リストに格納された値は、このような方法:特定のインデックスのデータをあるリストから別の空のリストに追加する方法
[array(['Hilton Garden Inn Dubai Al Muraqabat',
'Al Deyafa Hotel Apartments',
'Lapita, Dubai Parks and Resorts, Autograph Collection',
'The Baron Hotel Apartments',
'Park Inn by Radisson Hotel Apartments Al Rigga',
'Kempinski Hotel Mall of the Emirates',
'Premier Inn Dubai International Airport Hotel',
'Al Kameelia Hotel Dubai', 'ABC Arabian Suites',
'The Ritz-Carlton Residences, Dubai International Financial Centre'],
dtype='<U79')]
彼らはcsvファイルに表示される方法がある(同じ行の全10名):
以下Abidos Hotel Apartment - Al BarshaMarriott Executive Apartments Dubai, Green CommunityPullman Jumeirah Lakes Towers Hotel & ResidenceRamee Guestline Hotel Apartment 3The Ritz-Carlton Residences, Dubai International Financial CentreLapita, Dubai Parks and Resorts, Autograph CollectionAl Diar Hotel Apartments - Al BarshaDoubleTree by Hilton Hotel & Residences Dubai - Al BarshaJW Marriott Marquis Hotel DubaiHabtoor Grand Resort, Autograph Collection, A Marriott Luxury & Lifestyle Hotel
私ですコード:
import requests
import re
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
import ssl
import csv
import numpy as np
from bs4 import BeautifulSoup
def connect(self):
# Add certificate verification
sock = socket.create_connection((self.host, self.port), self.timeout)
# Wrap socket using verification with the root certs in
# trusted_root_certs
self.sock = ssl_wrap_socket(sock, self.key_file, self.cert_file,
cert_reqs=self.cert_reqs,
ca_certs=self.ca_certs,
server_hostname=self.host,
ssl_version=ssl.PROTOCOL_TLSv1)
offset = 0
url = 'https://www.tripadvisor.com/Hotels-g295424-oa' + str(offset) + '-Dubai_Emirate_of_Dubai-Hotels.html#EATERY_LIST_CONTENTS'
index_pages = ('http://www.tripadvisor.com/Hotels-g295424-oa{}-Dubai_Emirate_of_Dubai-Hotels.html#ACCOM_OVERVIEW'.format(i) for i in range(0, 540, 30))
urls = []
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
for link in soup.find_all('a', {'last'}):
page_number = link.get('data-page-number')
last_offset = int(page_number) * 30
print('last offset:', last_offset)
i=0
myList=[]
myUrl=[]
final=[]
for offset in range(0, last_offset, 30):
print('--- page offset:', offset, '---')
url = 'https://www.tripadvisor.com/Hotels-g295424-oa' + str(offset) + '-Dubai_Emirate_of_Dubai-Hotels.html#EATERY_LIST_CONTENTS'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
for link in soup.find_all('a', {'property_title'}):
iurl='https://www.tripadvisor.com/' + link.get('href')
page = requests.get(iurl).text
c=page.find("pool")
myList.append(c)
print (link.text)
myUrl.append(link.text)
print (page.find("pool"))
myarray = np.asarray(myList)
myarrayUrl = np.asarray(myUrl)
ind_pos= np.argsort(myarray)[-10:]
print (myarrayUrl[ind_pos])
myarrayUrl.tolist();
#for i in ind_pos:
# T.append(L[i])
final.append(myarrayUrl[ind_pos])
print (final)
with open ('HotelReviewData.csv','w') as file:
writer=csv.writer(file)
for row in final:
writer.writerow(row)
最後のリストに値を追加して、csvファイルの別の行に格納する方法を教えてください。