如何在python中使用nltk从网页中提取信息(在我的情况下提供工作机会)
我使用此代码提取文本的一部分,
import nltk
import time
import urllib2
from urllib2 import urlopen
from cookielib import CookieJar
import datetime
website = "http://tanitjobs.com/search-results-jobs/"
topSplit = "<div class=\"offre\">"
ButtomSplit = "<div class=\"offre-emploi \">"
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('Uer-agent', 'Mozilla/5.0')]
def main():
try:
ss =opener.open(website).read()
sourceCodeSplit = ss.split(topSplit)[1].split(ButtomSplit)[0]
texte = nltk.clean_html(sourceCodeSplit)
print texte
except Exception,e:
print 'fail in the main loop'
print str(e)
main()
但如果我从一般网页中提取特定段落(工作机会),我不知道怎么做
答案 0 :(得分:1)
首先,您需要来自python3的urllib.request
,请参阅http://docs.python.org/3.0/library/urllib.request.html
接下来,BeautifulSoup是你的朋友:http://www.crummy.com/software/BeautifulSoup/bs4/doc/。我发现这在py3.x中安装bs4时很有用,请参阅http://annelagang.blogspot.fr/2012/11/beautifulsoup-4-for-python-3x.html
这是一个有效的例子:
import urllib.request
from bs4 import BeautifulSoup as bs
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
headers={'User-Agent':user_agent,}
url="http://tanitjobs.com/search-results-jobs/"
request=urllib.request.Request(url,None,headers) #The assembled request
response = urllib.request.urlopen(request)
data = response.read()
for i in bs(data).find_all(attrs={"class": "offre-emploi vedette"}):
print(" ".join(i.find("div",attrs={"class":"detail"}).text.split()))
print
<强> [OUT]:强>
Téléopérateurs(trices)Quality Com Center QualityCom sis a Montplaisir recrutedestéléopérateurs(trices),en ... Voir toutes les offres de Quality Com Center
Contrôleurdegestion Eureka Developpement Humain Pour le compte d'une Multinationale dans le domaine de l'industrie,nous recrutons un:... Voir toutes de Eureka Developpement Humain离开了
负责任的资源人力资源(H / F)Eureka Developpement Humain Pour 儿子propre compteEurekaDéveloppementHumainRecrute:责任... Voir toutes de Eureka Developpement Humain离开了
ContrôleurFinancierJunior ProxyTunisieRattachéauDirecteur Administratif et Financier pays,votrerôleestde garantir la gerstion ... Voir toutes les deres de Proxy Tunisie
Superviseur en prize de rdv(énergierenouvelable)Quality Com Center Quality Com Center sis a Montplaisir Recrute 1 Superviseur(e) en Panneaux ... Voir toutes les offres de Quality Com Center
Téléconseillers(h / f)Axess全球服务AXESS GLOBAL SERVICES Recrutement Vous souhaitez travailler dans une Enterprise jeune et ... Voir热衷于de Axess全球服务