爬虫动态页面

核心提示前面分享过《初学者必备|Python环境安装、第三方库的下载安装方法》,今天分享一个Python爬取网页中动态生成的内容的方法。关键词:爬取动态生成的网页内容一、简单类型:网页内容可直接获取这种情况相对比较简单,爬取步骤:1、用urllib

之前分享过“初学者必备| Python环境安装,第三方库的下载和安装方法”。今天分享一个Python抓取网页中动态生成内容的方法。

关键词:抓取动态生成的网页内容

1.简单型:可以直接获取网页内容。

这种情况比较简单。攀爬步骤:

1元,使用urllib.request库直接获取网页源代码。

密室逃脱:冠军联赛,使用re库分析所需网页内容。

侏罗纪世界3,对解析后的内容进行相关操作,比如下载。

举例:某贴吧里的爬图,以下是贴吧的部分截图。

获取网页源代码的源代码:网页代码较大,建议不要打印。

右键,查看网页源代码,找到图片地址,用re的正则表达式解析所有图片地址。

提示:可以右键点击图片,复制图片地址。

在网页源代码页面,用Ctrl+F ޽˹+李在镕调出搜索窗口,粘贴地址,快速定位图片的地址。

通过对比发现,网页中所有的图片地址都有一个统一的前缀和一个统一的后缀,如下图所示:

这时候就可以用正则表达式来获取地址了。正则表达式相对复杂,初学者只需要理解两点。1元和内围是要获取的内容,左边是内容的前缀,右边是内容的后缀。2、.+?表示任意内容

最后一步,把获取的图片一张一张地下载下来。

部分爬网结果:

源代码:

导入urllib.request

进口re

URL = " http://tie ba . Baidu . com/Ma Yili/2256306796 " # URL

Page=urllib.request.urlopen #获取网页

Html=page.read #获取网页源代码

#解析jpg图片url的正则表达式

jpgReg = re.compile" width ')

#注意:此处末尾添加了一个“宽度”以提高匹配精度。

#解析jpg的url列表

jpgs = re.findall)

i=0

对于jpg中的jpgurl:

urllib.request.urlretrieve+"。jpg”)

i=i+1

二。复杂类型:动态生成网页的完整内容。

在实际爬取过程中,上述爬取方法都会失效。因为有些网站的内容是由JS脚本动态生成的,所以此时获取的网页源代码并不包含动态生成的内容。以某英语学习网为例,网页源代码并没有明显包含网页内容。

这时候就要牺牲Selenium了,它是一个测试网站的自动化测试工具。支持包括Chrome、Firefox、Safari等主流界面浏览器在内的各种浏览器,也支持phantomJS无界面浏览器。简单来说,Selenium可以模拟访问网页并得到最终结果。在使用Selenium之前,需要安装一个webdriver驱动文件。下载Chrome驱动文件chromedrive.exe后,可以直接放在谷歌Chrome的安装目录下。

c: Users Administrator AppData Local Google Chrome Application

下载时,一定要下载你的谷歌浏览器的相应版本。下载地址如下:

这时,爬行的思路就会调整:

1元,使用Selenium访问网页获取动态生成的网页源代码。

密室逃脱:冠军联赛,在源代码中找到所需内容的格式,解析,然后下载。

这里涉及到一个小技巧,如何查看动态网页的源代码:方法是右键中的check函数。

选择右边的Elements选项卡,可以看到网页的所有真实源代码。

将鼠标移动到右边的代码上,左边会选择相应的内容块,非常直观。

找到所需的内容块后,展开右边的代码。

调整后的源代码如下:

执行过程中的黑色窗口表示调用成功。

抓取部分内容列表截图。在这个地址前加上网站的前缀拼出完整的地址,第二次抓取。

源代码:开头的#要去掉,不然程序会出错。不加我就违反规定了

#导入urllib.request

#导入re

导入#睡眠功能

从selenium导入web驱动程序

来自selenium . web driver . chrome . Options导入选项

Url= "无法添加" # URL

# page = urlib.request.urlopern #获取网页

#html=page.read #获取网页源代码

Contents = Kim Hye Yoon曹政奭#保存获得的音乐通讯录。

#初始化web驱动程序

全局驱动因素

chrome_options =选项

chrome _ options.add _自变量

chrome _ options.add _自变量

driver _ path = ' chrome driver . exe ' #这里是下载驱动的本地路径。

driver = webdriver。铬

Driver.get #打开网址

#根据网络速度和网页内容,等待4վ֮ս秒。

时间.睡眠

Html = driver.page_source #获取网页的源代码

#设置正则表达式规则,并解析它们

MP3 = re。编译" class =') #注意:请参考上一节。

contents.extend.decode))

对于内容中的mp3url:

Print #这只是一个简单的打印,实际上你必须再次解析它来获得mp3的真实地址。

#关闭驱动程序

司机,辞职

后记:以上是Python抓取网页内容的两种方法。不足之处请留言讨论交流。

码字不易,您的关注、转发和收藏会给我无限动力!

 
友情链接
鄂ICP备19019357号-22