无法在Selenium中查看完整页面源

时间:2016-08-19 20:19:09

标签: python selenium selenium-webdriver bs4

当我通过Chrome手动导航到网站后查看源HTML时,我可以看到整页源代码,但是在通过selenium加载页面源时,我没有获得完整的页面源。

from bs4 import BeautifulSoup
from selenium import webdriver
import sys,time


driver = webdriver.Chrome(executable_path=r"C:\Python27\Scripts\chromedriver.exe")
driver.get('http://www.magicbricks.com/')


driver.find_element_by_id("buyTab").click()

time.sleep(5)
driver.find_element_by_id("keyword").send_keys("Navi Mumbai")

time.sleep(5)
driver.find_element_by_id("btnPropertySearch").click()

time.sleep(30)

content = driver.page_source.encode('utf-8').strip()

soup = BeautifulSoup(content,"lxml")

print soup.prettify()

2 个答案:

答案 0 :(得分:0)

该网站可能阻止或限制用户代理硒。一个简单的测试是更改用户代理并查看是否这样做。关于这个问题的更多信息:

Change user agent for selenium driver

引用:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument("user-agent=whatever you want")

driver = webdriver.Chrome(chrome_options=opts)

答案 1 :(得分:0)

尝试类似的东西:

import time
time.sleep(5)
content = driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML")

代替driver.page_source

动态网页通常需要用JavaScript呈现。