私はWebcrawlerを書くのに초급です。 http://www.creditchina.gov.cn/search_all#keyword=&searchtype=0&templateId=&creditType=&areas=&objectType=2&page=1の検索エンジンを使用して、自分の入力が有効かどうかをチェックします。BeautifulSoupはタグの間に何も得られません
たとえば、912101127157655762は有効な入力で、912101127157655760は無効です。
開発ツールからウェブのソースコードを見た後、私が見つかりました。入力が無効な番号である場合、タグは次のようになり、ということ:
入力が有効である場合、タグは次のようになりますが:
「ul class = "credit-info-results-public-results-left item-template"タグ内に何かがあるかどうかを確認するだけで、入力が有効かどうかを判断したいと思います。私のウェブクローラの記述方法は次のとおりです。
import urllib
from bs4 import BeautifulSoup
url = 'http://www.creditchina.gov.cn/search_all#keyword=912101127157655762&searchtype=0&
templateId=&creditType=&areas=&objectType=2&page=1'
req = urllib.request.Request(url)
data = urllib.request.urlopen(req)
bs = data.read().decode('utf-8')
soup = BeautifulSoup(bs, 'lxml')
check = soup.find_all("ul", {"class": "credit-info-results public-results-left item-template"})
if check == []:
# TODO
if check != []:
# TODO
ただし、checkの値は常に[]です。私はタブの間に何もない理由を理解できません。誰かが私が問題を解決するのを助けてくれることを望みます。
JSオブジェクトではなくhtmlを取得したかどうかはどのようにわかりますか?また、bs.find( 'credit-info-results public-results-left item-template')の値が39202で、入力912101127157655762と912101127157655760の両方が異なる出力値を返すはずであることを確認しました。それは混乱しています... –
私は私の答えを更新しました、試してみてください。残念ながら、このサイトでは私のリクエストが禁止されているため、自分でテストすることはできません。 –
私はWebのテンプレートに過ぎないことを発見しました。そして、私は開発者ツールの要素の代わりにネットワークを見る必要があります。とにかくあなたの時間と忍耐をありがとう! –