Ich versuche, HTML-Inhalt von der Website analysieren, ändern Sie eine href und img src. Eine href wurde erfolgreich geändert, aber img src nicht.Python BeautifulSoup ersetzen img src
Es variabel verändert, aber nicht in HTML (POST_CONTENT):
<p><img alt="alt text" src="https://lifehacker.ru/wp-content/uploads/2016/08/15120903sa_d2__1471520915-630x523.jpg" title="Title"/></p>
Nicht _http: //site.ru ...
<p><img alt="alt text" src="http://site.ru/wp-content/uploads/2016/08/15120903sa_d2__1471520915-630x523.jpg" title="Title"/></p>
Mein Code
if "app-store" not in url:
r = requests.get("https://lifehacker.ru/2016/08/23/kak-vybrat-trimmer/")
soup = BeautifulSoup(r.content)
post_content = soup.find("div", {"class", "post-content"})
for tag in post_content():
for attribute in ["class", "id", "style", "height", "width", "sizes"]:
del tag[attribute]
for a in post_content.find_all('a'):
a['href'] = a['href'].replace("https://lifehacker.ru", "http://site.ru")
for img in post_content.find_all('img'):
img_urls = img['src']
if "https:" not in img_urls:
img_urls="http:{}".format(img_urls)
thumb_url = img_urls.split('/')
urllib.urlretrieve(img_urls, "/Users/kr/PycharmProjects/education_py/{}/{}".format(folder_name, thumb_url[-1]))
file_url = "/Users/kr/PycharmProjects/education_py/{}/{}".format(folder_name, thumb_url[-1])
data = {
'name': '{}'.format(thumb_url[-1]),
'type': 'image/jpeg',
}
with open(file_url, 'rb') as img:
data['bits'] = xmlrpc_client.Binary(img.read())
response = client.call(media.UploadFile(data))
attachment_url = response['url']
img_urls = img_urls.replace(img_urls, attachment_url)
[s.extract() for s in post_content('script')]
post_content_insert = bleach.clean(post_content)
post_content_insert = post_content_insert.replace('<', '<')
post_content_insert = post_content_insert.replace('>', '>')
print post_content_insert
bereits versucht, aber - img [ 'src'] = img_urls Typeerror: 'Datei' Objekt nicht Gegenstand Zuordnung –
Oh nicht unterstützt, es ist ein Name Kollision Problem. Bearbeitet. – Kevin
Arbeiten - perfekt, vielen Dank und Entschuldigung für Noob Fragen. –