Python学习-BeautifulSoup简单爬虫

送给喜欢安全的编程小白,大佬绕道。编程学起来真的心累,C#学的一般般,PHP能看懂,但是写就费劲了,Python看了很久了,自己不真正动手做项目,依旧只会个什么元组、循环,感觉基本没用。真心喜欢安全的,不学编程真的很难继续进阶,写了两个小时,从不会到简单爬虫,只需要跟着我做。坑都踢你踩了,照着写就行了。

首先先学习下BeautifulSoup库的一些简单语法,Python如何安装,第三方库如何折腾在这里不写了,太基础了,自己去百度。

先是调用这个库 然后dir可以查看这个库所支持的方法 直接调用

然后import调用requests库 用get方式得到百度的源码

放到doc内 再放入soup内

Print(soup.prettift())可以将源码整齐的显示出来

首先是查看了下soup的类型然后找到他的head部分代码然后是里面 tittle的代码 p标签的数量很多如何一个个显示?Soup.find_all("p")显示所有的p标签 然后 [0] [1]一个个依次显示!

将第一个p标签通过赋值 转换为str 字符类型!

取出标签的值 .string以字符的方式去取出如果只有一个title 就可以按最后一个方式进行如果不是唯一一个 那么他只会显示第一个

当然这样的效果是一样的!

如果想要显示soup里面的a标签那么久 soup.a 会显示出第一个如果 soup.find_all("a")会显示出所以有的a标签这样看着是不是很累我们只想看href标签的内容那么我们使用for循环 for i insoup.find_all("a"): 这里有个坑打印print时候多按个 tab 才能出结果!

又做了个class例子 同理!

Soup.find_all(输入要查的内容) 可以直接 出现的!

显示title节点名字 和副节点名字!

取出所以a b 标签的内容 这里一定要带方括号写成列表

取出所以带id的标签

这里要引用正则表达式 import re 然后取出带b的标签的标签名字和带b的所以东西

打印class内cp-feedback中的第一个 然后.string打印出来字符

根据上面学的,并且有Python基础语法的知识,就可以写简单爬虫了,主要功能爬取网站的图片,代码还是有不完善的地方的,毕竟写出来的第一个程序。经过测试 如果图片链接倒了 那么程序直接结束报错了 并且爬取的网站其实还是有部分限制的。

代码如下

运行效果如下 能够爬取指定网页的所有图片

附上BeautifulSoup的参考文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 慢慢看吧,潜心学习

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181218G008B700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券