送给喜欢安全的编程小白,大佬绕道。编程学起来真的心累,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/ 慢慢看吧,潜心学习