python爬虫 将在线html网页中的图片链接替换成本地链接并将html文件下载到本地

python爬虫 将在线html网页中的图片链接替换成本地链接并将html文件下载到本地,第1张

import os,re

def check_flag(flag):

regex = re.compile(r'images\/')

result = True if regex.match(flag) else False

return result

#soup = BeautifulSoup(open('index.html'))

from bs4 import BeautifulSoup

html_content = '''

<a href="https://xxx.com">测试01</a>

<a href="https://yyy.com/123">测试02</a>

<a href="https://xxx.com">测试01</a>

<a href="https://xxx.com">测试01</a>

'''

file = open(r'favour-en.html','r',encoding="UTF-8")

soup = BeautifulSoup(file, 'html.parser')

for element in soup.find_all('img'):

if 'src' in element.attrs:

print(element.attrs['src'])

if check_flag(element.attrs['src']):

#if element.attrs['src'].find("png"):

element.attrs['src'] = "michenxxxxxxxxxxxx" +'/'+ element.attrs['src']

print("##################################")

with open('index.html', 'w',encoding="UTF-8") as fp:

fp.write(soup.prettify()) # prettify()的作⽤是将sp美化⼀下,有可读性

我用Jsoup写爬虫,一般遇到html返回没有的内容。但是浏览器显示有的内容。都是分析页面的http请求日志。分析页面JS代码来解决。

1、有些页面元素被隐藏起来了->换selector解决

2、有些数据保存在js/json对象中->截取对应的串,分析解决

3、通过api接口调用->伪造请求获得数据

还有一个终极方法

4、使用phantomjs或者casperjs这种headless浏览器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12075269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存