#python #json #selenium
Вопрос:
Я создал скребок, используя selenium python.У меня есть веб-сайт «http//:www.mytravelexp.com», для которого я создал скребок. Используемая технология:python,селен. Пример того, чего я добился : я использовал скребок, чтобы получить ссылки и изображения с одной веб-страницы.Я получаю данные в своей консоли. Что мне нужно, чтобы результат был : Я хочу, чтобы результат был сохранен в файл json в следующем формате: «ссылка»:»http://www.mytravelexp.com» «изображение»:»http://www.mytravelexp.com/image1″ Пожалуйста, подскажите, как это сделать. Вот код:
index.py
from selenium import webdriver
from time import sleep
import re
import json
driver = webdriver.Chrome(
executable_path="D:Codeless_Events6chromedriver.exe")
driver.get("https://www.mytravelexp.com/")
sleep(3)
src = driver.page_source
print(driver.title)
text_found = re.search(r'Learn More', src)
for a in driver.find_elements_by_xpath('.//a'):
print(a.get_attribute('href'))
for a in driver.find_elements_by_xpath('.//span'):
print(a.get_attribute('href'))
images = driver.find_elements_by_tag_name('img')
for image in images:
print(image.get_attribute('data-src'))
sleep(4)
print(text_found)
dictionary ={
"title":"",
"link" :"",
"button" :"",
"image" :""
}
with open("sample.json", "w") as outfile:
json.dump(dictionary, outfile)
driver.close()
Ответ №1:
Вот мое редактирование вашего кода в соответствии с моим пониманием ваших требований :
from selenium import webdriver
from time import sleep
import re
import json
driver = webdriver.Chrome(
executable_path=r"C:UsersAtharvaDesktopProjectsseleniumchromedriver.exe")
driver.get("https://www.mytravelexp.com/")
sleep(3)
src = driver.page_source
print(driver.title)
entry = {}
count = 0
dictionary = {}
text_found = re.search(r'Learn More', src)
for a in driver.find_elements_by_xpath('.//a'):
href = a.get_attribute('href')
if href:
entry['title'] = href
entry['link'] = a.get_attribute('class')
dictionary[count] = entry
entry = {}
count = 1
for a in driver.find_elements_by_xpath('.//span'):
href = a.get_attribute('href')
if href:
entry['title'] = href
entry['link'] = a.get_attribute('class')
dictionary[count] = entry
entry = {}
count = 1
images = driver.find_elements_by_tag_name('img')
for image in images:
data_src= a.get_attribute('data-src')
if data_src:
entry['title'] = data_src
entry['link'] = a.get_attribute('class')
dictionary[count] = entry
entry = {}
count = 1
with open("sample.json", "w") as outfile:
json.dump(dictionary, outfile)
driver.close()