Ich versuche, durch Google News-Suchergebnisse mit Pythons requests
zu kratzen, um Links zu verschiedenen Artikeln zu erhalten. Ich bekomme die Links mit Beautiful Soup
.Warum Pythons Anfragen Teile des Quellcodes transformieren?
Das Problem, das ich bekomme, ist, dass in der Quellansicht des Browsers alle Links normal aussehen, nach der Operation werden sie geändert - alle beginnen mit "/ url? Q =" und nachdem der "Kern" der Verbindung beendet ist Dort steht eine Zeichenkette, die mit "&" beginnt. Auch - einige Zeichen innerhalb der Link ebenfalls geändert - zum Beispiel url:
http://www.azonano.com/news.aspx?newsID=35576
Änderungen:
http://www.azonano.com/news.aspx%newsID%35576
Ich verwende Standard "getting started" Code:
import requests, bs4
url_list = list()
url = 'https://www.google.com/search?hl=en&gl=us&tbm=nws&authuser=0&q=graphene&oq=graphene&gs_l=news-cc.3..43j0l9j43i53.2022.4184.0.4322.14.10.3.1.1.1.166.884.5j5.10.0...0.0...1ac.1.-Q2j3YFqIPQ'
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
for link in soup.select('h3 > a'):
url_list.append(link.get('href'))
# First link on google news page is:
# https://www.theengineer.co.uk/graphene-sensor-could-speed-hepatitis-diagnosis/
print url_list[0] #this line will print url modified by requests.
Ich weiß, dass es möglich ist, dieses Problem zu umgehen, indem Sie verwenden, aber ich möchte zu wissen, wo liegt eine Ursache dieses Problems mit requests
(oder plausiblen nicht mit requests
aber die Art, wie ich es benutze).
Danke für jede Hilfe!
Präsentieren Sie ein [MCVE], dass wir das Problem tatsächlich sehen können. –
Der Quellcode sieht ursprünglich tatsächlich so aus und wird tatsächlich dynamisch in das geändert, was Sie im Element-Inspektor Ihres Browsers durch Javascript sehen. Verwenden Sie * View Source * (nein, nicht "inspect element", sondern * View Source *), um zu bestätigen. – deceze
@deceze - Wenn ich _View Source_ ich immer noch die gleichen Verbindungen (unverändert) [link] (view-source sehen: https: //www.google.com/search hl = en & gl = us & TBM = nws & authuser = 0 & q = Graphen & oq = Graphen & gs_l = Nachrichten-cc.3.43j0l9j43i53.2022.4184.0.4322.14.10.3.1.1.166.884.5j5.10.0 ... 0.0 ... 1ac.1.-Q2j3YFqIPQ) - wenn ich nach Azonano Links suche, Sie haben immer noch "?", "=" Zeichen. – KluCzarek