【发布时间】:2021-05-14 02:14:51
【问题描述】:
我需要以“无头”格式抓取一个网站,因为我不想看到弹出窗口。 如果站点可见,则下面的代码可以工作,但不能像无头一样工作,表明我没有权限:
“拒绝访问
您无权访问“http://www.hoteis.com/ho402825/?”在这台服务器上。
参考#18.563106c9.1620956860.1bad747"
代码是:
def search():
link = (
https://www.infomoney.com.br/
)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
chrome_options.add_argument('--headless')
driver = webdriver.Chrome('chromedriver', options = chrome_options)
driver.get(link)
element = driver.find_element_by_tag_name('body')
resposta = element.get_attribute('innerHTML')
site = BeautifulSoup(resposta, 'html.parser')
return driver, site
我看到一些问题说要在我的代码上应用“标头”,但由于我使用的是 webdriver,我认为它不起作用。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}
【问题讨论】:
-
仅供参考,它是 scrape(以及 scraping、scraper、scraped)而不是废弃。 “废弃”的意思是像垃圾一样扔掉。
-
请注意,使用此方法抓取某些网站是非法的--在抓取之前始终检查网站的“robots.txt”文件(您可以轻松地将其添加到您的代码中自动化它)也可能该站点正在识别(当您无头运行它时)您的脚本是一个机器人,并且可能因此将其踢出,但我对这个主题知之甚少自信地说。