`
uule
  • 浏览: 6358887 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Python爬虫实战:爬取JS组成的页面

 
阅读更多

Python 爬虫如何获取 JS 生成的 URL 和网页内容?

获取JS动态内容—爬取今日头条 

使用Selenium爬取QQ空间说说

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号')

 

 

。。

 

  • 大小: 43 KB
分享到:
评论

相关推荐

    通过python爬虫获取人民网、新浪等网站新闻作为训练集

    在本项目中,开发者利用Python爬虫技术从人民网和新浪等知名新闻网站抓取数据,构建了一个新闻文本的训练集,然后使用预训练的BERT模型进行新闻文本分类,最后通过Node.js和Vue.js开发了一个可视化的用户界面。...

    Python 实战项目:爬取上交所和深交所所有股票的名称和交易信息.zip

    在本Python实战项目中,我们将探讨如何爬取上海证券交易所(简称上交所)和深圳证券交易所(简称深交所)的所有股票的名称以及相关的交易信息。这个项目涵盖了Python编程、网络爬虫技术、数据处理和文件操作等多个...

    Python实战项目:爬取糗事百科、拉勾网、boss直聘等等知名网站实战,搭建响应式网站、Pyth-Python.zip

    在本项目中,我们将深入探讨如何使用Python进行网络爬虫实战,涵盖多个知名网站如糗事百科、拉勾网和BOSS直聘等,并学习如何搭建响应式网站。项目资料包含"Python-master"这个文件夹,它很可能是项目源代码的主目录...

    python爬虫爬取百度百科页面.zip

    本篇将深入探讨Python爬虫爬取百度百科页面的相关知识。 一、Python爬虫基础 Python爬虫的核心是通过HTTP或HTTPS协议与Web服务器交互,获取HTML或其他格式的网页内容。主要涉及的库有`requests`用于发送网络请求,...

    Python爬虫入门:基础知识解析.pptx

    Python爬虫的实战操作涉及编写爬虫脚本、数据清洗、存储和分析。数据清洗通常包括去除无效数据、统一格式、处理缺失值等。数据存储可以选择文件系统、数据库或者云存储,而数据分析则可以使用Pandas、NumPy等库进行...

    xiaohongshuSpider_python爬虫_python小红书_python

    对于想要深入学习Python爬虫,特别是针对小红书平台的同学,这个项目提供了一个很好的实战案例。通过阅读和理解“xiaohongshuSpider.py”源码,可以学习到实际爬虫开发中的一些关键技巧和实践经验。

    Python爬虫实战案例源码-批量爬取今日头条街拍美图

    综上所述,这个Python爬虫实战案例涉及到的主要知识点包括Python基础、HTTP请求、HTML解析、图片URL提取、图片下载及爬虫伦理和策略。通过实践,我们可以加深对这些知识的理解,并提升网络数据抓取的能力。

    网络爬虫_python_中数爬取_

    2. **Python爬虫库** - **Requests**:用于发送HTTP请求,如GET和POST,是Python爬虫的基础。 - **BeautifulSoup**:解析HTML和XML文档,提供易于理解的API来查找和操作网页元素。 - **Scrapy**:一个完整的爬虫...

    python爬虫课件+代码.zip

    本课程由“路飞学城樵夫”老师指导,通过实际操作帮助学习者掌握Python爬虫的基本原理和实战技巧。课程内容包括但不限于网页结构解析、请求与响应处理、数据提取以及后续的数据存储。 首先,Python爬虫的核心库如...

    python爬虫-爬虫项目实战之爬取豆瓣有关张国荣日记.zip

    本教程将通过一个具体的实战项目——爬取豆瓣有关张国荣的日记,来深入理解Python爬虫的工作原理和实现方法。 首先,我们需要了解Python爬虫的基本构成。通常,一个简单的爬虫包括以下几个部分:请求(Request)、...

    Python爬虫实例教程-代码.rar

    7. **Q房网爬虫**:"日月光华python爬虫实战_课程3_爬取Q房网.py"展示了如何针对特定网站进行定制化爬取,可能包括分页爬取、动态加载页面的处理以及数据存储。 通过这些实例,你不仅可以学习到Python爬虫的基本...

    拼多多爬虫,爬取所有商品、评论等信息.zip

    【标题】"拼多多爬虫,爬取所有商品、评论等信息.zip" 提供的资源旨在帮助用户学习如何利用Python爬虫技术抓取拼多多网站上的商品和评论数据。爬虫是互联网数据挖掘的一种常见方法,它允许程序员自动化地从网页中...

    Python爬虫实战视频

    本资源“Python爬虫实战视频”旨在通过一系列的教学视频,帮助学习者掌握Python爬虫的基础和进阶技巧,从而能够实际操作并解决各种数据抓取问题。 在Python爬虫的学习中,首先,我们需要了解Python的基础语法,包括...

    清华大学精品Python学习PPT课件-第11章 Python项目实战:爬虫程序.rar

    清华大学的这门精品Python课程聚焦于项目实战,特别是爬虫技术,旨在帮助学生深入理解并掌握Python爬虫的原理与实践。 Python爬虫是通过模拟浏览器与服务器交互,自动抓取网页内容的技术。它主要涉及以下几个核心...

    python-爬虫小案例(附配套说明文章)

    python爬虫js加密篇—搜狗微信公号文章的爬取:page_facing_up: 从《我和我的祖国》、《攀登者》和《中国机长》影评中看到了什么; 《我和我的祖国数据》影评爬取及数据分析; 爬虫代理池搭建及维护; Python 爬虫实战 ...

    python爬虫项目开发实战pdf+源代码

    Python爬虫项目开发实战是一个深度学习Python网络爬虫技术的实践教程,涵盖了从基础到进阶的各种知识点。这个资源包包含了一个PDF文档和源代码,旨在帮助用户通过实际操作来提升爬虫技能。 首先,PDF文档是教程的...

    Python爬虫爬取招聘数据和代码.zip

    总结,这个资源提供了从零开始学习Python爬虫实战的机会,涵盖了爬虫开发的全过程,包括请求发送、数据提取、数据清洗以及结果展示。通过学习和实践这个项目,你可以提升自己的网络数据获取能力,并为未来处理类似...

    Python网络爬虫实战

    根据提供的信息,《Python网络爬虫实战》是一本适合初学者使用的Python爬虫技术书籍,它不仅能够帮助读者巩固基础知识,还能够作为一本实用工具书在实际工作中发挥作用。下面将详细介绍该书中可能涵盖的关键知识点。...

    python爬虫实战练习手册.zip

    《Python爬虫实战练习手册》是一本专注于Python网络爬虫技术的实践教程,旨在帮助读者深入理解并掌握Python爬虫的各个核心知识点。通过实际操作和案例解析,本书旨在提升读者在数据抓取、处理和分析方面的能力。下面...

    爬虫代码实例源码大全+Python 爬虫Scrapy课件源码.zip

    "爬虫代码实例源码大全(纯源码不带视频的实例)"这部分是学习Python爬虫的重要资料。源码实例通常包括了各种常见的爬虫应用场景,如爬取网页HTML内容、解析JSON或XML数据、处理JavaScript加载的内容、登录验证、...

Global site tag (gtag.js) - Google Analytics