Python 利用爬虫爬取网页内容 (div节点的疑惑)

最近在写爬虫的时候发现利用beautifulsoup解析网页html

利用解析结果片段为:

<td valign="top">
<div class="pl2">
<a class="" href="https://movie.douban.com/subject/26588308/">
死侍2
/ <span style="font-size:13px;">DP2</span>
</a>
<p class="pl">2018-05-18(美国) / 瑞恩·雷诺兹 / 乔什·布洛林 / 莫蕾娜·巴卡林 / 朱利安·迪尼森 / 莎姬·贝兹 / T·J·米勒 / 莱斯利·格塞斯 / 卡兰·索尼 / 布里安娜·希德布兰德 / 杰克·凯西 / 埃迪·马森 / 忽那汐里 / 斯蒂芬·卡皮契奇 / 兰德尔·瑞德...</p>
<div class="star clearfix">
<span class="allstar40"></span>
<span class="rating_nums">7.5</span>
<span class="pl">(94247人评价)</span>

我要抓取的是评分,也就是上文中:<span class="rating_nums">7.5</span>

利用find_all(‘节点‘,class_=‘目标class‘)

在之前抓取的时候,经常将“”这个符号也写入目标class中,并且认为要加入转义符号r‘’以去消除转义

但经常返回的是空字符串

之后看到了其他博客后发现,不用加入“”也可以(若是加入“”后应该注意r‘‘的使用)

源代码为:

import re
import requests
from bs4 import BeautifulSoup

def get_HTML(url):
    header = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36"}
    try:
        r = requests.get(url,timeout = 30,headers=header)
        r.raise_for_status()
        r.encoding = r.apparent_encoding   #指定编码形式
        return r.text
    except:
        return "please inspect your url or setup"

#解析目标网页的html

def get_information_from_url(url):
    text = get_HTML(url)
    soup = BeautifulSoup(text,"html.parser")#解析text中的HTML
    print(soup)
    dls = soup.find_all(‘tr‘, class_=r‘‘"item"‘‘)
    marks = soup.find_all(‘span‘,class_=‘rating_nums‘)
    #print(dls)
    print(marks)
    f = []
    for x in dls:
        rel = ‘>\\n +‘+‘[\s\S]*?‘+‘/ <‘#正则表达式
        pattern = re.compile(rel)
        fname =pattern.findall(str(x))
        f.append(fname)
    f = str(f)
    #print(f)
    fname = f.replace(‘ ‘,‘‘)
    fname = fname.replace(‘\\n‘,‘‘)
    fname = fname.replace(‘\‘>‘,‘‘)
    fname = fname.replace(‘/<\‘‘,‘‘)
    #print(fname)

url = "https://movie.douban.com/chart"
get_information_from_url(url)   

运行结果为:

[<span class="rating_nums">7.5</span>, <span class="rating_nums">6.8</span>, <span class="rating_nums">8.1</span>, <span class="rating_nums">8.2</span>, <span class="rating_nums">7.3</span>, <span class="rating_nums">8.2</span>, <span class="rating_nums">7.9</span>, <span class="rating_nums">7.0</span>, <span class="rating_nums">7.2</span>, <span class="rating_nums">7.1</span>]
[[死侍2],[瞒天过海:美人计],[升级],[复仇者联盟3:无限战争],[遗传厄运],[祈祷落幕时],[燃烧],[摘金奇缘],[致所有我曾爱过的男孩],[]]

在对其中用正则表达式进行切割就好了

原文地址:https://www.cnblogs.com/manner/p/9556360.html

时间: 2024-11-06 03:53:14

Python 利用爬虫爬取网页内容 (div节点的疑惑)的相关文章

如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py文件.我们需要获取的数据是朋友圈和发布日期,因此在这里定义好日期和动态两个属性,如下图所示. 2.修改实现爬虫逻辑的主文件moment.py,首先要导入模块,尤其是要主要将items.py中的WeixinMomentItem类导入进来,这点要特别小心别被遗漏了.之后修改start_requests方

java爬虫爬取网页内容前,对网页内容的编码格式进行判断的方式

近日在做爬虫功能,爬取网页内容,然后对内容进行语义分析,最后对网页打标签,从而判断访问该网页的用户的属性. 在爬取内容时,遇到乱码问题.故需对网页内容编码格式做判断,方式大体分为三种:一.从header标签中获取Content-Type=#Charset:二.从meta标签中获取Content-Type=#Charset:三.根据页面内容分析编码格式. 其中一/二方式并不能准确指示该页面的具体编码方式,周全考虑,加入第三种方式. 第三种方式引入开源jar包info.monitorenter.cp

Python多线程爬虫爬取电影天堂资源

最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. 先来简单介绍一下,网络爬虫的基本实现原理吧.一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点.这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务

Python 利用 BeautifulSoup 爬取网站获取新闻流

0. 引言 介绍下 Python 用 Beautiful Soup 周期性爬取 xxx 网站获取新闻流: 图 1 项目介绍 1. 开发环境 Python: 3.6.3 BeautifulSoup:   4.2.0 , 是一个可以从HTML或XML文件中提取数据的Python库* ( BeautifulSoup 的中文官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ ) 2. 代码介绍 实现主要分为三个模块: 1. 计时

Python简易爬虫爬取百度贴吧图片

通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地.(Python版本为3.6.0) 一.获取整个页面数据 def getHtml(url): page=urllib.request.urlopen(url) html=page.read() return html 说明: 向getHtml()函数传递一个网址,就可以把整个页面下载下来. urllib.request 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据. 二.筛选页面

python制作爬虫爬取京东商品评论教程

作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论. 京东商品评论信息是由JS动态加载的,所以直接抓取商品详

如何用Python网络爬虫爬取网易云音乐歌词

前几天小编给大家分享了数据可视化分析,在文尾提及了网易云音乐歌词爬取,今天小编给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本地. 本文的目的是获取网易云音乐的歌词,并将歌词存入到本地文件.整体的效果图如下所示: 基于Python网易云音乐歌词爬取 赵雷的歌曲 本文以民谣歌神赵雷为数据采集对象,专门采集他的歌曲歌词,其他歌手的歌词采集方式可以类推,下图展示

Python 简单爬虫 爬取知乎神回复

看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果全部爬下来到一个文件里面,是不是看起来很爽,并且随时可以看到全部的,于是就开始动手了. 工具 1.Python 2.7 2.BeautifulSoup 分析网页 我们先来看看知乎上该网页的情况: 网址: ,容易看到,网址是有规律的,page慢慢递增,这样就能够实现全部爬取了. 再来看一下我们要爬取的内容: 我们要爬取两个内容:问题和回答,回答仅限于显示了全部

python 利用selenium爬取百度文库的word文章

今天学习如何使用selenium库来爬取百度文库里面的收费的word文档 from selenium import webdriver from selenium.webdriver.common.keys import Keys from pyquery import PyQuery as pq from selenium.webdriver.support.ui import WebDriverWait from selenium import webdriver import time o