python爬虫如何从一个页面进入另一个页面-Python爬虫 (一):爬取一个简单的静态网页...

版本:python3.7

平台:windows10

工具 :pycharm

断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识。如有错误,欢迎指出。db75225feabec8d8b64ee7d3c7165cd639554cbc.png

在学习爬虫的时候,静态网页是最适合入门练手的项目。这是一个练习的网页:http://www.pythonscraping.com/pages/page3.html

学习python最好的方式就是查看官方文档https://docs.python.org/3/library

urllib.request是一个库, 隶属urllib。9648975df93aaeafa82dadece73dbd64f8ced6cb.png

我们再点击urllib.request就会发现这条语句0e2474555e91f0b3cd329de010b00346b412f1e3.png

urlopen 用来打开并读取一个从网络获取的远程对象。返回一个 http.client.HTTPResponse 对象, 这个对象又有各种方法, 比如我们用到的read()方法返回的网页内容实际上是没有被解码或的。在read()得到内容后通过指定decode()函数参数,可以使用对应的解码方式。

代码如下

from urllib.request import urlopen

if __name__ == "__main__":

url = ("http://www.pythonscraping.com/pages/page3.html")

html = urlopen(url).read().decode()

print(html)

执行完毕后我们就可以通过审查元素(F12)发现html代码已经被我们打印出来了。但是我们想要的是其中我们感兴趣的数据该怎么办?比如之想要其中的列表部分的内容。

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,主要的功能是从网页抓取数据,相对于正则表达式来说,更简便。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式

Beautiful Soup的中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.htmle59cb72156fe04316fb40999015a6df4e45506a0.png

findAll ()返回的是所有符合结果的列表,find()返回的是符合的第一个值。

代码如下:

if __name__ == "__main__":

url = ("http://www.pythonscraping.com/pages/page3.html")

html = urlopen(url)

soup = BeautifulSoup(html,'lxml')

gifts = soup.findAll('tr',{'class':'gift'})

for gift in gifts:

print(gift.get_text())

.get_text()函数是将标签去掉,只返回内容。

soup = BeautifulSoup(html,'lxml')默认的解析器是html.parse,这里使用的是另外一个解析器lxml解析器

经测试需要gifts = soup.findAll('tr',{'class':'gift'})这样以字典的形式给attrs参数赋值才可以。

4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

这篇文章就到此结束了,虽然看着很简单,但是这才刚刚入门。有句话送给所有喜欢学习的人:仰之弥高,钻之弥坚,努力,共勉。

ps:题外话,第一次写专栏,B站专栏的连接只可以用站内连接吗.......???

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值