2017-11-23 12 views
0

私はPython初心者の開発者です。私はまだ学習段階です。 より具体的には、要求とbs4を使用したスクレイピングに取り組んでいます。私は次のコードを使用し「http://directorybtr.az.gov/listings/FirmSearchResults.asp?Zip%20Like%20%22850%25%22Python_Web_scraping HTMLテーブル

::次のリンクをこすりしようとしたとき

import requests 

from bs4 import BeautifulSoup 
url ="http://directorybtr.az.gov/listings/FirmSearchResults.asp?Zip%20Like%20%22850%25%22" 
res = requests.get(url) 

soup = BeautifulSoup(res.text, 'html.parser') 
res.close() 
results = soup.find('table') 

をChromeでソースページを検査する際に、テーブルが存在しているが、結果にはテーブルがありません。 解決策や説明をお願いしますか?

+0

あなたのコードはかなり不完全で移動する必要があります。 'url'は定義されておらず、' r'もありません。 – Perfi

+0

申し訳ありませんが、 'r'は 'res'という間違いがありますので、定義されています。 urlは上のリンクです。すでに自分のコードで定義されています。 url = 'http://directorybtr.az.gov/listings/FirmSearchResults.asp?Zip%20Like%20%22850%25%22' –

答えて

0

表データがフレーム内にあるありがとう、uが最初

import requests 
from lxml import html 
from bs4 import BeautifulSoup 
BASE_URL = "http://directorybtr.az.gov/listings/" 
URL = BASE_URL + "FirmSearchResults.asp?Zip%20Like%20%22850%25%22" 
#u need session because the frame use the search results data, u cant directly go to Firms.asp 
session = requests.session() 
response = session.get(URL) 
soup = BeautifulSoup(response.text, 'lxml') 
#find the first frame 
frame = soup.find("frame") 
#go to the frame link (Firms.asp) 
response = session.get(BASE_URL + frame.attrs['src']) 
soup = BeautifulSoup(response.text, 'lxml') 
table = soup.find("table") 
print table 
response.close()