Python3 抓取 HTML 网页
Python 还在学习中,突然想拖一个网站上的图片,因为有点多,所以纯手动太麻烦,就试试能不能用一下。毕竟现在虽然看不懂模块的代码,但是会用就可以了。于是把中间的过程做一下笔记。
一开始知道,可以通过 urllib.request 模块获取一个链接中的内容。
1 | import urllib.request |
此时 data 是二进制数据,如果是图片内容的话,直接写入文件就可以了,网页的话可以通过 html_code = data.decode('utf-8')
转换为 string 。
是这样不错,不过我想下图的那个网站的网址不知道为什么通过 urllib.request.openurl
的方式总是提示 404 错误。随后想通过直接下载 html 文件的方式,可能是我读取时没处理好,在解析 html 时还是出现错误。
Pycurl
随后搜索了一下 Python 的 curl 模块,果然是有的,虽然用法没怎么看懂,但是官网给的 示例 正好就拿来用了。
1 | # -*- coding: utf-8 -*- |
Http.cilent
后来搜索 urllib.request.openurl
为啥会提示 404 ,发现使用 http.request 也可以。
1 | # -*- coding: utf-8 -*- |
嘛 不过感觉,都差不多的样子(
Requests
最后的时候,终于发现了最简单的方法,导入 requests
模块。
1 | # -*- coding: utf-8 -*- |
解析 HTML
由于需要分析的网页并不复杂,所以搜索到了一个很简单的 例子 就可以使用了。
下面这段就是返回 html_code 中所有 img 标签的 ‘scr = ‘ 的链接,然后根据情况稍加过滤就可以了。
1 | """ |
BeautifulSoup
最后发现了 BeautifulSoup 这个,解析 HTML 时使用起来更加的方便。 (也更好看懂,而且还有中文) 。
使用 Python的内置标准库解析 HTML :
1 | import bs4 |
其他
Python 输出 RSS2.0 标准的 xml 文件 : PyRSS2Gen
记录 Crontab 的日志
#修改rsyslogsudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log #将cron前面的注释符去掉
#重启rsyslogsudo service rsyslog restart
#查看crontab日志less /var/log/cron.log