質問

これは実際にはスクレイピングではなく、クラスが特定の値を持つ Web ページ内の URL を見つけようとしているだけです。例えば:

<a class="myClass" href="/url/7df028f508c4685ddf65987a0bd6f22e">

href値を取得したい。これを行う方法について何かアイデアはありますか?おそらく正規表現でしょうか?いくつかのサンプルコードを投稿していただけますか?BeautifulSoup などの HTML スクレイピング ライブラリは、このためだけに少しやりすぎだと思います...

とても感謝しています!

役に立ちましたか?

解決

正規表現は通常悪い考えです。使ってみてください 美しいスープ

簡単な例:

html = #get html
soup = BeautifulSoup(html)
links = soup.findAll('a', attrs={'class': 'myclass'})
for link in links:
    #process link

他のヒント

ああ、そうではない HTMLを解析するための正規表現!

幸いなことに、Python には次のものがあります。 美しいスープ または lxml 私たちのためにその仕事をするために。

正規表現は悪い選択です。HTML は通常の言語ではありません。どうでしょうか 美しいスープ?

HTML の解析に正規表現を使用しないでください。見る この質問に対する最初の答え 説明のために:)

ビューティフルスープの場合は +1。

タスクがこれだけ単純な場合は、(正規表現を使用せずに) 文字列操作を使用してください。

f=open("htmlfile")
for line in f:
    if "<a class" in line and "myClass" in line and "href" in line:
        s = line [ line.index("href") + len('href="') : ]
        print s[:s.index('">')]
f.close()

このような場合、HTML パーサーは必須ではありません。

問題は、私は HTML ページの構造を知っており、その特定の種類のリンク (class="myclass") を見つけたいだけであるということです。とにかく美しいスープ?

HTML の解析を読む クトゥルフのやり方 https://blog.codinghorror.com/parsing-html-the-cthulhu-way/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top