私はPythonの新機能です(私はPHP/JavaScriptのバックグラウンドから来ています)が、を持つa
タグをすべて見つけるためにウェブサイトとすべての子ページをクロールしたクイックスクリプトを作成したかっただけです。いくつの属性があるかを数えてリンクをクリックします。私はすべてのリンクを数えることができますが、リンクを "クリック"して応答コードを返す方法を理解することはできません。PythonでリンクをクリックするBeautifulSoup
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
でも可能ですか?
また、正確なコードを探しているわけではありません。私が実際に探しているのは、関数呼び出しのための正しい方向の点などです。ありがとう!
あなたはbs4でクリックアクションを実行できないと思うかもしれませんが、おそらくセレンを見てみましょうか?さもなければ新しいリンクで 'urllib2.urlopen'を使うことができますか? – PRMoureu
レスポンスコードを取得するには、単にurllib2.urlopenをURLに入れて使用することができます。 –