美汁を使ってデータを削っています。コードをループさせたい URL のリストがあるので、urllib2.Request
コマンドに変数を含める必要があります。に変数を追加すると、次のurllib2.Request
エラーが発生します (urllib2.py の 1240 行目):
raise URLError('unknown url type: %s' % type)
これが私のコードです:
from bs4 import BeautifulSoup
import urllib2
webstring = "/DIRECTORY/"+"'"
webfull = "urllib2.Request('http://www.caao.org"+webstring+", None, headers)"
print webfull
#webfull prints: urllib2.Request('http://www.caao.org/DIRECTORY/', None, headers)
headers = { 'User-Agent' : 'Mozilla/5.0' }
html = urllib2.urlopen(webfull).read()
soup = BeautifulSoup(html)
print soup
変数webfull
は正しいコードを出力します。それを切り取って urlopen に貼り付けると、うまくいきます。ちょうどこのような:
from bs4 import BeautifulSoup
import urllib2
headers = { 'User-Agent' : 'Mozilla/5.0' }
html = urllib2.urlopen(urllib2.Request('http://www.caao.org/DIRECTORY/', None, headers)).read()
soup = BeautifulSoup(html)
print soup
テストとして複数の Web サイトを使用してみました。また、特定の文字列に三重引用符 (以下のように) を使用しようとしましたが、常に同じunknown url type
エラーが発生します。
webstring = "/DIRECTORY/"+"'"
web1 = """'http://www.caao.org"""+webstring+", None, headers)"
補足として:
私はPythonが初めてで、同じWebサイト内の複数のページからデータをスクレイピングしようとしています. 上記のコードは、URL のリストを実行して、各ページで美しいスープ コードを実行できるようにするためのものです。スクレイピング コードを実行できるように、URL のリストをループして各ページを開くための簡単な方法があればurllib2.urlopen
、お知らせください。