所以我是 Python 新手(我来自 PHP/JavaScript 背景),但我只是想编写一个快速脚本来抓取网站和所有子页面以查找所有内容a
标签有href
属性,数一下有多少个,然后单击链接。我可以计算所有链接,但我不知道如何“单击”链接然后返回响应代码。
from bs4 import BeautifulSoup
import urllib2
import re
def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page, "html.parser")
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
links.append(link.get('href'))
return links
anchors = getLinks("http://madisonmemorial.org/")
# Click on links and return responses
countMe = len(anchors)
for anchor in anchors:
i = getLinks(anchor)
countMe += len(i)
# Click on links and return responses
print countMe
这是否有可能BeautifulSoup
?
另外,我并不是在寻找确切的代码,我真正在寻找的只是函数调用使用的正确方向的点或类似的东西。谢谢!
Urlopen
是适合您目的的更好解决方案,但如果您需要单击并与网络上的元素进行交互,我建议使用selenium webdriver
。有 Java、Python 和其他语言的实现。我已经将它与 Java 和 Python 一起使用,效果非常好。您可以无头运行它,这样浏览器实际上不会打开。
pip install selenium
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)