立即学习:https://edu.csdn.net/course/play/6861/326754?utm_source=blogtoedu
soup = bs4.BeautifulSoup(response.text)
soup.findAll(name = 'p',attrs={'class':'mailIco'})
其中和右边相关的name 和 attrs 取自如下
<p class="mailIco">510623</p>
class 是key
maillco为value
结果是:
[<p class="mailIco">310009</p>, <p class="mailIco">530021</p>, <p class="mailIco">510623</p>, <p class="mailIco">518048</p>, <p class="mailIco">410015</p>, <p class="mailIco">350005</p>, <p class="mailIco">523071</p>, <p class="mailIco">610041</p>]
列表对象每个都是一个新的soup对象
提取最终的右边信息
for i in soup.findAll(name = 'p',attrs={'class':'mailIco'}) :
print(i.text)
结果是:
310009 530021 510623 518048 410015 350005 523071 610041 430048 650021 550004
怎么存储起来呢?
使用列表表达式
[i.text for i in soup.findAll(name = 'p',attrs={'class':'mailIco'})]
最后把结果保存到列表中
结果如下:
['310009', '530021', '510623', '518048', '410015', '350005', '523071', '610041', '430048',
假如要提取电话:
网页html内容如下:
<p class="telIco">0755-23962001</p>
则 soup.findAll()参数如下:
name = 'p'
key = 'class'
value = 'tellco'
列表表达式如下:
[i.text for i in soup.findAll(name='p',attrs={'class':'tellco'})]
两种方式:正则表达式、BeautifulSoup
介绍 pandas
import pandas as pd
pd.DataFrame({'company':company,'address':address,'mail':mail,'tel':tel})
会把刚才的列表导出成一个表格
效果如下: