Python 爬虫如何获取 JS 生成的 URL 和网页内容?
python爬虫的最佳实践(五)--selenium+PhantomJS的简单使用
最粗暴的方法是使用selenium+phantomjs无界面浏览器,这两者的结合其实就是直接操作浏览器,可以获取JavaScript渲染后的页面数据。
这两者结合使用的缺点:
由于是无界面浏览器,采用此方案效率极低,如果大批量抓取不推荐。
对于异步请求并且数据在源码中并不存在的,同时也就无法抓取到的数据
Selenium简介
Selenium是一个用于Web应用的功能自动化测试工具,Selenium 直接运行在浏览器中,就像真正的用户在操作一样。
由于这个性质,Selenium也是一个强大的网络数据采集工具,其可以让浏览器自动加载页面,获取需要的数据,甚至页面截图,或者是判断网站上某些动作是否发生。
Selenium自己不带浏览器,需要配合第三方浏览器来使用。支持的浏览器有Chrome、Firefox、IE、Phantomjs等。如果使用Chrome、FireFox或IE,我们可以看得到一个浏览器的窗口被打开、打开网站、然后执行代码中的操作。因为selenium+Firefox或者Chrome太慢了,所以我们选用selenium+PhantomJS。
Phantomjs是一个“无头”浏览器,也就是没有界面的浏览器,但是功能与普通的浏览器无异。是一个基于webkit的没有界面的浏览器,也就是它可以像浏览器解析网页,功能非常强大
例子1、爬取今日头条
# coding=utf-8 import requests import json url = 'http://www.toutiao.com/api/pc/focus/' wbdata = requests.get(url).text print(wbdata) print() data = json.loads(wbdata) news = data['data']['pc_feed_focus'] for n in news: title = n['title'] img_url = n['image_url'] url = n['media_url'] print(url,title,img_url)
需要引入requests包
结果:
例子2:爬取QQ空间说说
需要引入selenium包和下载phantomjs
# coding=utf-8 from bs4 import BeautifulSoup from selenium import webdriver import time #使用selenium driver = webdriver.PhantomJS(executable_path="D:\\python\\phantomjs-2.1.1\\bin\\phantomjs.exe") driver.maximize_window() #登录QQ空间 def get_shuoshuo(qq): driver.get('http://user.qzone.qq.com/{}/311'.format(qq)) time.sleep(5) try: driver.find_element_by_id('login_div') a = True print("需要登录...") except: a = False print("不需要登录...") if a == True: driver.switch_to.frame('login_frame') driver.find_element_by_id('switcher_plogin').click() driver.find_element_by_id('u').clear()#选择用户名框 driver.find_element_by_id('u').send_keys('QQ号码') driver.find_element_by_id('p').clear() driver.find_element_by_id('p').send_keys('QQ密码') driver.find_element_by_id('login_button').click() time.sleep(3) driver.implicitly_wait(3) print("验证权限...") try: driver.find_element_by_id('QM_OwnerInfo_Icon') b = True except: b = False if b == True: print("获取说说...") driver.switch_to.frame('app_canvas_frame') content = driver.find_elements_by_css_selector('.content') stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail') for con,sti in zip(content,stime): data = { 'time':sti.text, 'shuos':con.text } print(data) pages = driver.page_source #print(pages) soup = BeautifulSoup(pages,'lxml') cookie = driver.get_cookies() cookie_dict = [] for c in cookie: ck = "{0}={1};".format(c['name'],c['value']) cookie_dict.append(ck) i = '' for c in cookie_dict: i += c print('Cookies:',i) print("==========完成================") driver.close() driver.quit() if __name__ == '__main__': get_shuoshuo('好友QQ号')
。。
相关推荐
在本项目中,开发者利用Python爬虫技术从人民网和新浪等知名新闻网站抓取数据,构建了一个新闻文本的训练集,然后使用预训练的BERT模型进行新闻文本分类,最后通过Node.js和Vue.js开发了一个可视化的用户界面。...
在本Python实战项目中,我们将探讨如何爬取上海证券交易所(简称上交所)和深圳证券交易所(简称深交所)的所有股票的名称以及相关的交易信息。这个项目涵盖了Python编程、网络爬虫技术、数据处理和文件操作等多个...
在本项目中,我们将深入探讨如何使用Python进行网络爬虫实战,涵盖多个知名网站如糗事百科、拉勾网和BOSS直聘等,并学习如何搭建响应式网站。项目资料包含"Python-master"这个文件夹,它很可能是项目源代码的主目录...
本篇将深入探讨Python爬虫爬取百度百科页面的相关知识。 一、Python爬虫基础 Python爬虫的核心是通过HTTP或HTTPS协议与Web服务器交互,获取HTML或其他格式的网页内容。主要涉及的库有`requests`用于发送网络请求,...
Python爬虫的实战操作涉及编写爬虫脚本、数据清洗、存储和分析。数据清洗通常包括去除无效数据、统一格式、处理缺失值等。数据存储可以选择文件系统、数据库或者云存储,而数据分析则可以使用Pandas、NumPy等库进行...
对于想要深入学习Python爬虫,特别是针对小红书平台的同学,这个项目提供了一个很好的实战案例。通过阅读和理解“xiaohongshuSpider.py”源码,可以学习到实际爬虫开发中的一些关键技巧和实践经验。
综上所述,这个Python爬虫实战案例涉及到的主要知识点包括Python基础、HTTP请求、HTML解析、图片URL提取、图片下载及爬虫伦理和策略。通过实践,我们可以加深对这些知识的理解,并提升网络数据抓取的能力。
2. **Python爬虫库** - **Requests**:用于发送HTTP请求,如GET和POST,是Python爬虫的基础。 - **BeautifulSoup**:解析HTML和XML文档,提供易于理解的API来查找和操作网页元素。 - **Scrapy**:一个完整的爬虫...
本课程由“路飞学城樵夫”老师指导,通过实际操作帮助学习者掌握Python爬虫的基本原理和实战技巧。课程内容包括但不限于网页结构解析、请求与响应处理、数据提取以及后续的数据存储。 首先,Python爬虫的核心库如...
本教程将通过一个具体的实战项目——爬取豆瓣有关张国荣的日记,来深入理解Python爬虫的工作原理和实现方法。 首先,我们需要了解Python爬虫的基本构成。通常,一个简单的爬虫包括以下几个部分:请求(Request)、...
【标题】"拼多多爬虫,爬取所有商品、评论等信息.zip" 提供的资源旨在帮助用户学习如何利用Python爬虫技术抓取拼多多网站上的商品和评论数据。爬虫是互联网数据挖掘的一种常见方法,它允许程序员自动化地从网页中...
7. **Q房网爬虫**:"日月光华python爬虫实战_课程3_爬取Q房网.py"展示了如何针对特定网站进行定制化爬取,可能包括分页爬取、动态加载页面的处理以及数据存储。 通过这些实例,你不仅可以学习到Python爬虫的基本...
本资源“Python爬虫实战视频”旨在通过一系列的教学视频,帮助学习者掌握Python爬虫的基础和进阶技巧,从而能够实际操作并解决各种数据抓取问题。 在Python爬虫的学习中,首先,我们需要了解Python的基础语法,包括...
清华大学的这门精品Python课程聚焦于项目实战,特别是爬虫技术,旨在帮助学生深入理解并掌握Python爬虫的原理与实践。 Python爬虫是通过模拟浏览器与服务器交互,自动抓取网页内容的技术。它主要涉及以下几个核心...
python爬虫js加密篇—搜狗微信公号文章的爬取:page_facing_up: 从《我和我的祖国》、《攀登者》和《中国机长》影评中看到了什么; 《我和我的祖国数据》影评爬取及数据分析; 爬虫代理池搭建及维护; Python 爬虫实战 ...
在本篇内容中,我们将深入探讨如何利用Python进行网络爬虫实战,特别是在“澎湃新闻”网站上针对特定关键词“交通事故”进行新闻内容的抓取。首先,我们要了解的是Python中的两个关键库:`requests`和`BeautifulSoup...
Python爬虫项目开发实战是一个深度学习Python网络爬虫技术的实践教程,涵盖了从基础到进阶的各种知识点。这个资源包包含了一个PDF文档和源代码,旨在帮助用户通过实际操作来提升爬虫技能。 首先,PDF文档是教程的...
总结,这个资源提供了从零开始学习Python爬虫实战的机会,涵盖了爬虫开发的全过程,包括请求发送、数据提取、数据清洗以及结果展示。通过学习和实践这个项目,你可以提升自己的网络数据获取能力,并为未来处理类似...
根据提供的信息,《Python网络爬虫实战》是一本适合初学者使用的Python爬虫技术书籍,它不仅能够帮助读者巩固基础知识,还能够作为一本实用工具书在实际工作中发挥作用。下面将详细介绍该书中可能涵盖的关键知识点。...
《Python爬虫实战练习手册》是一本专注于Python网络爬虫技术的实践教程,旨在帮助读者深入理解并掌握Python爬虫的各个核心知识点。通过实际操作和案例解析,本书旨在提升读者在数据抓取、处理和分析方面的能力。下面...