У меня есть простой скрипт ниже, который отлично работает для получения списка статей из Google Scholar в поисках интересующего термина.
import urllib
import urllib2
import requests
from bs4 import BeautifulSoup
SEARCH_SCHOLAR_HOST = "https://scholar.google.com"
SEARCH_SCHOLAR_URL = "/scholar"
def searchScholar(searchStr, limit=10):
"""Search Google Scholar for articles and publications containing terms of interest"""
url = SEARCH_SCHOLAR_HOST + SEARCH_SCHOLAR_URL + "?q=" + urllib.quote_plus(searchStr) + "&ie=UTF-8&oe=UTF-8&hl=en&btnG=Search"
content = requests.get(url, verify=False).text
page = BeautifulSoup(content, 'lxml')
results = {}
count = 0
for entry in page.find_all("h3", attrs={"class": "gs_rt"}):
if count < limit:
try:
text = entry.a.text.encode("ascii", "ignore")
url = entry.a['href']
results[url] = text
count += 1
except:
pass
return results
queryStr = "Albert einstein"
pubs = searchScholar(queryStr, 10)
if len(pubs) == 0:
print "No articles found"
else:
for pub in pubs.keys():
print pub + ' ' + pubs[pub]
Однако я хочу запустить этот скрипт как приложение CGIна удаленном сервере, без доступа к консоли, поэтому я не могу установить какие-либо внешние модули Python.(Мне удалось «установить» BeautifulSoup, не прибегая к pip или easy_install, просто скопировав каталог bs4 в мой каталог cgi-bin, но этот трюк не работал с запросами из-за большого количества зависимостей.)
Итак, мой вопрос: возможно ли использовать встроенные модули Python urllib2 или httplib вместо запросов на получение страницы Google Scholar и затем передать ее в BeautifulSoup?Так и должно быть, потому что я нашел здесь код , который очищает Google Scholar, используя только стандартные библиотеки плюс BeautifulSoup, но он довольно запутанный.Я бы предпочел найти гораздо более простое решение, просто приспособив мой скрипт для использования стандартных библиотек вместо запросов.
Может ли кто-нибудь помочь мне?