私はウェブからテキストを掻き出すことを学んでいます。アイブ氏は、次の関数引用符を含む引数を渡すPython
from bs4 import BeautifulSoup
import requests
def get_url(source_url):
r = requests.get(source_url)
data = r.text
#extract HTML for parsing
soup = BeautifulSoup(data, 'html.parser')
#get H3 tags with class ...
h3list = soup.findAll("h3", { "class" : "entry-title td-module-title" })
#create data structure to store links in
ulist = []
#pull links from each article heading
for href in h3list:
ulist.append(href.a['href'])
return ulist
私は別のファイルからこれを呼び出していますが...書か
from print1 import get_url
ulist = get_url("http://www.startupsmart.com.au/")
print(ulist[3])
問題は、私が使用していCSSセレクタは、私が解析していますサイトに非常にユニークであるということです。だから関数は少し「脆弱」です。私は、関数定義に
def get_url(source_url, css_tag):
をパラメータを追加し、"h3", { "class" : "entry-title td-module-title" }
を渡すしようとした場合、それは
をspazzes関数に引数としてTypeError: get_url() takes exactly 1 argument (2 given)
をCSSセレクタを渡したいです
引用符をすべてエスケープしようとしましたが、それでも動作しません。
本当にありがとうございました。私はこれに先験的な答えを見つけることができません。
は、あなたが 'defをGET_URLを定義していますsured(SOURCE_URL、css_tag):'正しくて、それをやった後は、再び変更された機能をインポート?あなたの関数defineの変更が 'get_url()'を呼んでいるファイルに反映されていないように見える –
あなたのエラーは、クォートに関するものではなく、(正確に)1つしかないget_url()引数。 – maze88
あなたが特定したこの問題は正しいと思います。私はそれを追加した後、第二の引数を認識するために私のPythonを再起動する必要がありました。 –