Heim > Fragen und Antworten > Hauptteil
Beim Schreiben eines Crawlers in Python (Crawling von Wikipedia-Einträgen) erschien die URL["href"] im Ausgabeprozess der Verwendung des Iterators. Ich dachte, sie sollte zu einer Verwendung im Iterator gehören, aber das konnte ich nicht Finden Sie es. Bitte helfen Sie mir bei dieser Verwendung
#coding:utf-8
import urllib
import urllib2
import re
from bs4 import BeautifulSoup
resp = urllib2.urlopen("https://en.wikipedia.org/wiki/Main_Page").read()
soup = BeautifulSoup(resp,"html.parser")
listurl = soup.findAll('a',href=re.compile("^/wiki/"))
for url in listurl:
print url.get_text(),"------>","https://en.wikipedia.org"+url["href"]
Die URL["href"] in der letzten Zeile hat einen Kürzungseffekt auf die gecrawlten Daten. Vor dem Hinzufügen lautet die Ausgabe: Druck-URL
Ausgabe: Haftungsausschluss
Nach dem Hinzufügen lautet die Ausgabe:
Druck-URL[" href" ]
Ausgabe:/wiki/Wikipedia:General_disclaimer
Lösung, danke
某草草2017-05-18 11:01:46
只要实现了__getitem__方法的类就可以使用中括号取值。
In [16]: class A():
...: def __getitem__(self,a):
...: return a
...:
In [17]: a = A()
In [18]: a['a'], a[1]
Out[18]: ('a', 1)