Bowers, Roslyn
英语教师
bowers.roslyn@yahoo.com
Caroline Botsford
英语教师
carolinebotsford@hotmail.com
鲍小佳
助理教授
xiaojiabao@xmu.edu.cn
C Top
Chang, Seong Yeon
助理教授
sychang@xmu.edu.cn
//中间省略一大段相同结构的源码
邹至庄
教授
gchow@princeton.edu
这里我们使用bs4来解析。bs4是一个非常好的解析网页的库,后面我们会详细介绍。这次的解析先给大家看bs4里面最常用的几个BeautifulSoup对象的方法(method)。我们使用的这几个方法,主要是通过HTML的标签和标签里面的参数来定位,然后用特定方法(method)提取数据。
首先还是导入package:
from bs4 import BeautifulSoup
然后创建一个BeautifulSoup对象:
soup = BeautifulSoup(html,‘html.parser’) #html.parser是解析器
下面我们根据我们看到的网页提取。首先提取我复制的这部分的代码的第一行,先定位到这部分代码:
div_people_list = soup.find(‘div’, attrs={‘class’: ‘people_list’})
这里我们使用了BeautifulSoup对象的find方法。这个方法的意思是找到带有‘div’这个标签并且参数包含" class = ‘people_list’ "的HTML代码。如果有多个的话,find方法就取第一个。那么如果有多个呢?正好我们后面就遇到了,现在我们要取出所有的“a”标签里面的内容:
a_s = div_people_list.find_all(‘a’, attrs={‘target’: ‘_blank’})
这里我们使用find_all方法取出所有标签为“a”并且参数包含“ target = ‘_blank‘ ”的代码,返回一个列表。“a”标签里面的“href”参数是我们需要的老师个人主页的信息,而标签里面的文字是老师的姓名。我们继续:
for a in a_s:
url = a[‘href’]
name = a.get_text()
这里我们使用BeautifulSoup支持的方法,使用类似于Python字典索引的方式把“a”标签里面“href”参数的值提取出来,赋值给url(Python实际上是对对象的引用),用get_text()方法把标签里面的文字提起出来。
事实上,使用这四个方法就可以正常地解析大部分HTML了。不过如果只用这四个方法,很多程序会写的异常原始。所以我们后面再继续介绍更多解析方法。
3. 储存
这里我们先弱化一下具体的储存方法,先输出到控制台上面。我们在刚才的代码的基础上加一行代码:
for a in a_s:
url = a[‘href’]
name = a.get_text()
print name,url
使用print关键词把得到的数据print出来。让我们看看结果:
result
‘’’
Bluhm, Marcel /people/faculty/4b901e30_5f2a_4609_96ee_2d154954d22e.html
Bowers, Roslyn /people/faculty/47557237_8d2f_4f54_a889_7ea6b2e41c91.html
Caroline Botsford /people/faculty/b16b86f2_0eed_40da_ad4a_0b559864109e.html
鲍小佳 /people/faculty/85baa506_9087_4c89_979e_4a9fd19ff60b.html
Chang, Seong Yeon /people/faculty/d0c8f922_2c64_4bbb_99d9_b3d40a04cefe.html
蔡熙乾 /people/faculty/f642c7bf_ac86_42dd_a6ac_a85720d45c8e.html
蔡宗武 /people/faculty/55981260_ddce_43aa_97b5_3d7ad0ae2844.html
陈灯塔 /people/faculty/899ecc03_5fc6_4fd7_89d7_af93901ef6b1.html
陈国进 /people/faculty/22627c95_155a_4f18_a586_df9ac4f1d7ce.html
陈海强 /people/faculty/382f444e_a849_4818_9d34_ed6347d9cbf7.html
程立新 /people/faculty/ab01c285_bbcc_4354_b27e_3bfb947a3690.html
丁锦秀 /people/faculty/de839f24_9947_43a6_9857_580ec3d07e2d.html
董晓芳 /people/faculty/abd60523_953f_48aa_862d_4b0893c88f4a.html
范青亮 /people/faculty/739b6285_0f8e_4683_b71c_640a896b687f.html
方颖 /people/faculty/94656316_8cb0_4d02_a822_4d06c12dddbe.html
冯峥晖 /people/faculty/cb02c396_6b12_497f_a724_9127aa37da33.html
Graham, Brett /people/faculty/3af92170_844d_48a4_875f_98ed85d04207.html
耿森 /people/faculty/04a8870f_d728_4e83_ba95_1d00b53cf6df.html
龚天益 /people/faculty/d7c4cd68_7489_419a_a23a_85265e67d6f9.html
管中闵 /people/faculty/d7ecca89_f116_4757_8c1e_759e435ab813.html
郭晔 /people/faculty/69499729_7f5d_4b32_9a3d_29413a8e7f71.html
韩乾 /people/faculty/27b6b1c7_9787_4747_bd44_9f2e481b5a0f.html
韩晓祎 /people/faculty/f0852907_3fc8_422e_8517_4c2c6343d3fa.html
何亚男 /people/faculty/04cbc55f_a447_4e01_b30b_ebf9d01b6f4c.html
洪永淼 /people/faculty/07848586_e55c_4e2b_8934_4df456307d7b.html
黄娟娟 /people/faculty/e03b1af7_9119_49d8_ac3a_1fd7e4843ee2.html
薛绍杰 /people/faculty/cb05eba1_f8f9_419d_86f3_f6d7e557d006.html
荆海伟 /people/faculty/5f0a030f_bcdb_4c92_87f8_f16fc4a454cc.html
赖小琼 /people/faculty/159be896_9a94_4bb9_b967_65dacbef6332.html
李嘉楠 /people/faculty/45495497_f951_4f46_8546_17bafe4148e9.html
李梦玲 /people/faculty/44f6af2b_a423_4913_83ed_f83d0fa635e5.html
李木易 /people/faculty/386198a6_ff09_4105_8337_98be8d9eaf50.html
李培 /people/faculty/8799c2eb_2ac1_4354_b2a6_25f60eb93aa5.html
李迎星 /people/faculty/91a6e77b_4e97_4a7b_98ba_15a08f8bc5ef.html
李志文 /people/faculty/67b3184d_9989_42f1_84e4_c280962320a2.html
李智 /people/faculty/22c3d25f_913e_4f03_b40f_cd80a71a8cf7.html
廖谋华 /people/faculty/76d14b07_96cd_40de_bff1_276647bafb88.html
林光平 /people/faculty/b5a0449b_d991_4345_8802_e45be1adbda3.html
林海 /people/faculty/bf8bd4a1_dca2_4c08_8128_91120a5ffd84.html
林娟 /people/faculty/6714b425_91ba_40b4_95a1_e98299ffd21d.html
林明 /people/faculty/fadf2e50_6736_43b6_94a4_f0d69a3efb4b.html
刘鼎铭 /people/faculty/92f33f3c_4cdb_4abf_b030_8942ec17329f.html
刘继春 /people/faculty/aad04279_03c4_4182_be07_4bf5f59f0e41.html
刘婧媛 /people/faculty/c85a8534_b940_4fad_b220_1e9ed73aacf0.html
龙小宁 /people/faculty/a4ba4fec_65fa_4775_9802_0200645bca74.html
马超 /people/faculty/e1544cf5_21a6_4c35_b03f_3ba4845ef11c.html
马双鸽 /people/faculty/d8d1b107_2dfc_437a_b302_e4a1b43f0817.html
茅家铭 /people/faculty/600cf256_34ab_465b_8f60_d7a15bf56934.html
蒙莉娜 /people/faculty/61cd935f_51d0_4891_805e_b43354688765.html
孟磊 /people/faculty/78bdea7b_42dd_456c_bbc2_02c1db9ff980.html
牛霖琳 /people/faculty/3dd722d5_3c4f_41c2_a7bc_c69948e4714f.html
潘越 /people/faculty/a2c16c29_ba98_4883_bf69_a63d7de6c43f.html
屈文洲 /people/faculty/7b9aa674_62fb_4acf_b293_ff569f0a991a.html
任宇 /people/faculty/b134ac71_c990_4578_a730_4e90e1c50a4d.html
White, Chris /people/faculty/4c9e3afb_cb0b_4746_bbd5_e9e4302ed93a.html
王璐航 /people/faculty/dcb7ab35_a252_4e37_a31d_9ce86229cd85.html
王学新 /people/faculty/cfecc858_9c39_4fff_b056_eaf5999b83e6.html
王艺明 /people/faculty/f4448009_5c81_4725_9798_42ce40412ffb.html
王云 /people/faculty/06fc08d7_5dbd_4d28_8de9_4e7b57c04163.html
萧政 /people/faculty/da83c84c_cb80_431c_97ea_0bb6bd31745f.html
谢沛霖 /people/faculty/a9a0a3b2_99cb_43a6_b683_43861065fe38.html
徐海峰 /people/faculty/faa2370a_0b25_40c5_80f3_75862906b6a3.html
许文超 /people/faculty/dc8a8b18_3b1e_443d_bd49_81d15fd56cde.html
杨荷 /people/faculty/90b06e5e_d49d_43e1_b18c_dd3c855e001c.html
姚加权 /people/faculty/0550534a_6c10_4e82_930c_20cec564e781.html
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。