我正在尝试从this link中读取餐厅名称,但是却没有显示。网站是用javascript呈现的,因此我使用硒来抓取数据。我注意到,在每个新请求中,类名称都在更改因此无法提取数据。这是我到目前为止一直尝试的代码。
import re
from datetime import datetime
from scrapy import Spider
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.by import By
import scrapy
import selenium
from scrapy.selector import Selector
from scrapy.http import Request
from selenium.common.exceptions import NoSuchElementException
class MyUberSpider(Spider):
name = "Uber"
date_insert = datetime.now().strftime("%d-%m-%Y %H:%M:%S")
def parse(self, response):
header = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko)'
' Chrome/71.0.3578.98 Safari/537.36'}
options = Options()
options.add_argument("--incognito")
options.add_argument("--disable-extensions")
options.add_argument(" --disable-gpu")
options.add_argument(" --disable-infobars")
options.add_argument(" -–disable-web-security")
options.add_argument("--no-sandbox")
caps = options.to_capabilities()
driver = webdriver.Chrome('/usr/bin/chromedriver', desired_capabilities=caps)
driver.get('https://www.ubereats.com/en-IN/albuquerque')
# driver.maximize_window()
scrapy_selector = Selector(text=driver.page_source)
restaurant_row = scrapy_selector.xpath('//div[@class="base_ ue-i3"]')
我该如何实现?
答案 0 :(得分:0)
这是可用于获取餐厅行的xpath。
//div[@class='base_ ']//div[starts-with(@class,'base_ ')]
如果您想直接访问餐厅,可以在xpath下使用
//div[@class='base_ ']//a[starts-with(@class,'base_ ')]