Я учусь печатать текст из Интернета. Ive написал следующую функциюПроводящий аргумент 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 я использую довольно уникальный для сайта я разбор. Таким образом, функция немного «хрупкая». Я хочу передать селектор 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)
Я попытался убежать от всех кавычек, но он все еще не работает.
Я очень благодарен за помощь. Я не могу найти предыдущий ответ на этот вопрос.
Вы ренные вы определили 'четкости get_url (SOURCE_URL, css_tag):' правильно и после того, как делать это снова импортирован измененную функцию? Похоже, что изменение функции не было отражено в файле, где вы вызываете 'get_url()' –
Ваша ошибка не о кавычках, а о функции 'get_url()', которая, как указано, принимает только (точно) один аргумент. – maze88
Я думаю, что эта проблема, которую вы определили, верна. Мне нужно было перезапустить мой python, чтобы он узнал второй аргумент после того, как я добавил его. –