python网页数据抓取(来讲四种在Python中解析网页内容的方法,你知道吗?)
优采云 发布时间: 2022-01-03 14:58python网页数据抓取(来讲四种在Python中解析网页内容的方法,你知道吗?)
用 Python 编写爬虫工具现在已经司空见惯。每个人都希望能够编写一个程序来获取互联网上的一些信息进行数据分析或其他事情。
蟒蛇
我们知道,爬虫的原理无非就是下载目标网址的内容并存入内存。这时候它的内容其实就是一堆HTML,然后按照自己的想法解析提取HTML内容。必要的资料,所以今天我们主要讲四种用Python解析网页HTML内容的方法,各有千秋,适用于不同的场合。
在学习Python的过程中,很多人往往因为没有好的教程或者没有人指导而轻易放弃。出于这个原因,我建立了一个 Python 交换。裙子:想了半天(号转换下可以找到。有最新的Python教程项目,看不懂就跟里面的人说,就解决了!
首先我们随机找了一个网站,然后豆瓣网站闪过我的脑海。好吧,网站毕竟是用Python构建的,所以我们来演示一下。
找到豆瓣的Python爬虫群首页,如下图。
让我们使用浏览器开发人员工具查看 HTML 代码并找到所需的内容。我们想要获取讨论组中的所有帖子标题和链接。
通过分析,我们发现我们想要的内容其实在整个HTML代码的这个区域,所以我们只需要想办法取出这个区域的内容即可。
现在开始编写代码。
1:正则表达式大法
正则表达式通常用于检索和替换符合某种模式的文本,因此我们可以利用这个原理来提取我们想要的信息。
参考以下代码。
代码的第6行和第7行,需要手动指定header的内容,假装请求是浏览器请求。否则豆瓣会将我们的请求视为正常请求并返回HTTP 418错误。
在第 7 行,我们直接使用 requests 库的 get 方法发出请求。获取到内容后,我们需要进行编码格式转换。这也是豆瓣页面渲染机制的问题。一般情况下,我们直接获取requests内容。内容不错。
Python模拟浏览器发起请求并解析内容代码:
url = 'https://www.douban.com/group/491607/'headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:71.0) Gecko/20100101 Firefox/71.0"}response = requests.get(url=url,headers=headers).content.decode('utf-8')
正则化的优点是写起来麻烦,难懂,但是匹配效率很高。但是,在如今现成的 HTMl 内容解析库太多之后,我个人不建议使用正则化来手动匹配内容。 ,费时。
主要分析代码:
<p>re_div = r'[\W|\w]+'pattern = re.compile(re_div)content = re.findall(pattern, str(response))re_link = r'<a .*?>(.*?)</a>'mm = re.findall(re_link, str(content), re.S|re.M)urls=re.findall(r"