因此,我正在尝试抓取一个使用JS动态加载内容的网站。我的目标是建立一个快速的python脚本来加载网站,查看是否有某个单词,然后通过电子邮件将其发送给我。
我是编码的新手,所以如果有更好的方法,我很高兴听到。
我目前正在使用Selenium加载页面,然后使用BeautifulSoup刮擦生成的页面,这就是我遇到的问题。如何获取beautifulsoup来刮除我刚在硒中打开的网站?
from __future__ import print_function
from bs4 import BeautifulSoup
from selenium import webdriver
import requests
import urllib, urllib2
import time
url = 'http://www.somesite.com/'
path_to_chromedriver = '/Users/admin/Downloads/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
site = browser.get(url)
html = urllib.urlopen(site).read()
soup = BeautifulSoup(html, "lxml")
print(soup.prettify())
我有一个错误,说
Traceback (most recent call last):
File "probation color.py", line 16, in <module>
html = urllib.urlopen(site).read()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 87, in urlopen
return opener.open(url)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 185, in open
fullurl = unwrap(toBytes(fullurl))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1075, in unwrap
url = url.strip()
AttributeError: 'NoneType' object has no attribute 'strip'
我不是很了解,也不了解为什么会这样。urllib在内部吗?我如何解决它?我认为解决该问题将解决我的问题。
可以使用浏览器上的“ page_source”属性找到HTML。这应该工作:
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
browser.get(url)
html = browser.page_source
soup = BeautifulSoup(html, "lxml")
print(soup.prettify())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句