2017-06-28 3 views
0

1, Post die Hauptseite 2 Geben Sie den ersten Inhalt 3, bei Kindern Seite den nächsten Inhalt bekommenPython3 beautifulsoup4 - immer Eingangswert

ich die versteckten Artikel property.BUT ich das bekommen kann nicht gefunden eigentlich Wert. Ich versuche zu finden, alle Dinge erhalten den Eingabewert, aber es funktioniert nicht. Similar question:

import bs4,requests,os 

url = 'http://www.qiushibaike.com' 
#request the main page 
res = requests.get(url) 
res.raise_for_status() 

soup = bs4.BeautifulSoup(res.text,"html.parser") 

qsMain = soup.select('a[class="contentHerf"]')[0] 
print(qsMain) 
url = 'http://www.qiushibaike.com' + qsMain.get('href') 

#enter the first content 
res = requests.get(url) 
res.raise_for_status() 
print(url) 
subLink = bs4.BeautifulSoup(res.text,"html.parser") 

#get Children page 
s = subLink.select('input')[0].get('value') 
print(s) 
s1 = subLink.find("div", {"class":"article block untagged noline mb15"}) 
print(s1) 

here the INPUT I want find

Antwort

1

Ihr Problem ist hier:

subLink.select('input')[0] 

Insbesondere Ihrer Wahl [0] nur zu bekommen. Es gibt viele input Elemente und die gewünschte ist nicht die erste. Die erste ist <input id="hid" type="hidden">, in der Nähe der Spitze von s1.

Um zuverlässig den richtigen Tag zu finden, nur seine id verwenden, etwa so:

s = subLink.find(id="articleNextLink").get('value') 
+0

ich diese Methode hatte versucht, aber ich fand das der Wert nicht ‚Artikel/118839782‘ der Zufallswert ist. wie 'article/118743286' – Nomiki

+1

@Nomiki ja, der Wert ist zufällig. Öffnen Sie https://www.qiushibaike.com/article/119222287 und sehen Sie sich den versteckten Eingabewert an. Öffnen Sie den Artikel nun erneut in einem neuen privaten Browserfenster (so dass keine Cookies vorhanden sind) und Sie sehen, dass sich der Wert ändert. Sie verfolgen Besucher, um zu versuchen, die Links konsistent zu machen, aber sie sind zufällig. 'requests.get' erstellt jedes Mal eine neue Sitzung, weshalb sich diese immer ändert. –

+0

Danke in der Tiefe !!! Dieses Problem hat mich für eine lange Zeit beunruhigt. Vielen Dank! – Nomiki