2017-01-25 11 views
0

ImはBeautifulSoup

PhpPython3BeautifulSoupのページ(無視した場合)にPhpのすべての回出てくる見つけるために探してページを無視した場合に「PHPのすべての回出てくる検索(関わらず、例)上のどこにでも発生する可能性があります私は基本的にはstringという表現を見つけようとしており、特定のdivやクラスの中には存在しません。

私は現在持っている:

from BeautifulSoup import BeautifulSoup 
import requests 
    school_urls = ['somesite1.com','somesite2.com'] 
    posting_keywords = ['PHP', 'Php', 'php'] 

    for school in school_urls: 

schoolはそれでphpのような言葉でURLをINGのrequestからHTMLマークアップが含まれています。

これはどのように見えますか? posting_keywordsをループする代わりに、ケースを無視してphpのすべてのパターンを見つけるために美しいスープでこれを行う方法はありますか?

おかげ

+0

は、あなたがこれを実行してみましたがありますか?それは動作しますか?それは失敗ですか?あなたの質問は何ですか? –

+0

私はそれをテストしました、問題は、もし 'Php'がリンクにあれば、それはそれを見つけます。私はそれが欲しいのはそのテキストだけです。 'Php Rocks'、リンクではありません。 'a href =" somesite.com/php-rocks "> some text' – Jshee

答えて

0

あなたのためposting_keywords.lower()の作業を行います。

+0

これは 'php'だけ探します。 html出力に 'Php'または' PHP'が存在する場合は見つけたい – Jshee

+0

上記 'res'にこの' lower'メソッドを適用できますか? – Jshee

+0

これは役立つかもしれないhttp://stackoverflow.com/a/7354011/6007101 – thinkvitamin

0
import re, bs4 
text = '''""" 
<html><head><title>The Dormouse's story php</title></head> 
<body> 
<p class="title"><b>The Dormouse's story PHP</b></p> 

<p class="story">Once upon a time there were three little sisters; and their names were 
<a href="http://example.com/elsie" class="sister" id="link1">php</a>, 
<a href="http://example.com/lacie" class="sister" id="link2">Php</a> and 
<a href="http://example.com/tillie" class="sister" id="link3">php Tillie</a>; 
and they lived at the bottom of a well.</p> 

<p class="story">...</p> 
"""''' 
soup = bs4.BeautifulSoup(text, 'lxml') 
soup.find_all(text=re.compile(r'php', re.IGNORECASE)) 

アウト:

["The Dormouse's story php", 
"The Dormouse's story PHP", 
'php', 
'Php', 
'php Tillie'] 

Document