BeautifulSoup,一碗美丽的汤,一个隐藏的大坑
admin
2023-07-18 09:02:39
0
        python 网络爬虫常用的4大解析库助手:re正则、etree xpath、scrapy xpath、BeautifulSoup。(因为etree xpath和scrapy xpath用法上有较大的不同,故没有归为一类),本文来介绍BeautifulSoup一个少为人知的坑,见示例:
        例1(它是长得不一样, 柬文勿怪):
                    content = """
    
         
          

ចំណែកឯប្រេងដូងវិញ មានផ្ទុកអាស៊ីតខ្លាញ់អូមេហ្គា៣ ដែលល្អបំផុតសម្រាប់បំផ្លាញ់មីក្រុបដែលមានវត្តមាននៅក្នុងតំបន់រន្ធគូថ ហេតុនេះហើយទើបការឆ្លងមេរោគ និងរមាស់ត្រូវបានទប់ស្កាត់។



ចំណាំ៖
ប្រសិនបើអ្នករមាស់ខ្លាំង មានការឈឺចាប់ ហើយមានឈាមហូរទៀតនោះ ត្រូវប្រញាប់ទៅជួបជាមួយគ្រូពេទ្យភ្លាម៕

""" soup = BeautifulSoup(content) img_lst = [] inner_src_list = soup.find_all('img', src=True) for i, src in enumerate(inner_src_list): url=src["src"].replace("&ssl", "&ssl") print(url) print(soup.prettify()) # content = soup.prettify() # src的打印结果一样 img_tags = soup.find_all('img') for img in img_tags: print(img['src']) 控制台打印输出如下: ![](https://cache.yisu.com/upload/information/20200310/57/120424.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![](https://cache.yisu.com/upload/information/20200310/57/120431.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![](https://cache.yisu.com/upload/information/20200310/57/120432.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 怎么会这样:文本中的‘amp;’字符怎么消失了? 解释如下:BeautifulSoup在提取src时内部会自动把符号‘&’转义成'&',【网页解析有时不一定要眼前的直觉】【不仅bs如此, etree xpath和scrapy xpath也是一样】 例2: 文本同上 soup = BeautifulSoup(content) img_lst = [] inner_src_list = soup.find_all('img', src=True) # 注意比较 for i, src in enumerate(inner_src_list): url=src["src"].replace("&ssl", "&ssl") print(url) inner_src_list = soup.find_all('img', attr={'src':True}) # 注意比较 for i, src in enumerate(inner_src_list): url=src["src"].replace("&ssl", "&ssl") print(url) 这里不作打印了,直接说明现象,第一个print正常打印,第二个print输出为空,为什么? 解释如下: 第一个find_all,把src=True视为存在src属性的img标签,第二个find_all,把attr={'src', True}视为存在src且属性值为True的img标签,所以结果可想而知! 上述如有不正之处,欢迎指出,谢谢!

相关内容

热门资讯

马克龙要“救欧洲”,却猛打中国... 马克龙对华态度的两面性因主办星期一开始的G7峰会有了新发挥。法国把峰会主题定在了“讨论全球失衡”这一...
美顶尖经济学家劝斯威士兰“弃暗... 赖清德上月刚想尽办法窜访的所谓“邦交国”斯威士兰,传来一个剜他心的消息。斯威士兰新闻(Swazila...
AI+生产线,宝安“智”变跑出... 当“人工智能+”深度融入制造业生产线 会给企业带来怎样的改变? 走进宝安区的盛鸿运科技有限公司(以下...
青海布局十大特色产业场景 青海布局十大特色产业场景激活高质量发展新动能 《青海省特色领域场景培育和开放指引(试行)》于近日出台...
国产新机进场:中端机终于不装了... 如果你不是参数党,不是跑分狂。 是朋友圈P图两小时、出门必带充电宝、手机壳比手机还沉的小伙伴。那么肯...
阿里云申请数据存储方法专利,可... 国家知识产权局信息显示,阿里云计算有限公司申请一项名为“数据存储方法、设备、存储介质及程序产品”的专...
高中生“手搓火箭”引质疑?合作... 据《哈尔滨日报》等媒体此前报道,本月9日,一枚由5名高中生自主研发的火箭在青海冷湖发射成功,“高中生...
美国开出北约撤军清单:空军战斗... 【文/观察者网 王一】当地时间6月12日,美国《纽约时报》报道称,美国正加速缩减其数十年来为欧洲盟友...
凤凰晚报丨被喊话赴台的演员张凌... 今日人物【被喊话赴台的演员张凌赫,亮相海峡论坛】今年,大陆古装偶像剧《逐玉》在台湾热播,主演张凌赫也...
AI中国|一“舞”览山河!从世... 自然造就山河盛景人文沉淀民族底色一处处自然遗产留存着大地原本的山河禀赋一项项文化与非遗遗存承载着先民...