爬虫day05 动态网站爬取,json模块 selenium , phantomjs , BeautifulSoup

本文介绍了如何使用XPath、Ajax进行动态网站数据抓取,并详细讲解了Python的json模块、Selenium与PhantomJS的配合使用,以及BeautifulSoup在网页解析中的应用。通过实例展示了抓取糗事百科的段子信息、豆瓣电影Top100榜单和斗鱼直播的主播及观众人数。
摘要由CSDN通过智能技术生成

目录

1.糗事百科-xpath

2.动态网站数据抓取 - Ajax

3.json模块

4.selenium + phantomjs 强大的网络爬虫

    1.selenium

    2.phantomjs

    3.常用方法

5.BeautifulSoup

糗事百科xpath匹配答案存mongo数据库

豆瓣网登录

斗鱼主播名字和观众人数


 

 

1.糗事百科-xpath

    1.目标:用户昵称 段子内容 好笑数 评论数
    2.步骤
        1.找URL
            https://www.qiushibaike.com/8hr/page/1/
        2.xpath匹配
            基准的xpath每个段子:
                //div[contains(@id,"qiushi_tag_")]        

            用户昵称:./div/a/h2
            段子内容:.//div[@class="content"]/span
            好笑数量:.//i
            评论数量:.//i

2.动态网站数据抓取 - Ajax

    1.Ajax动态加载
        1.特点:动态加载(滚动鼠标滑轮时加载)
        2.案例:豆瓣电影top100榜单(剧情)

import requests
import json
import csv

url = "https://movie.douban.com/j/chart/top_list?"
params = {"type":"11",
          "interval_id":"100:90",
          "action":"",	
          "start":"0",
          "limit":"200"}

headers = {"User-Agent":"Mozilla5.0"}

res = requests.get(url,params=params,headers=headers)
res.encoding = "utf-8"
# 得到的json格式的数组[]
html = res.text
# 把json格式的数组转为python的列表
L = json.loads(html)

for film in L:
    score = film["rating"][0]
    name = film["title"]
    
    with open("豆瓣100.csv","a",newline="") as f:
        writer = csv.writer(f)
        writer.writerow([name,score])

3.json模块

    1.作用:json格式类型 和 Python数据类型 相互转化
    2.常用方法
        1.json.loads(): json格式 --> Python数据类型
            json    python
            对象    字典
            数组    列表
        2.json.dumps()

4.selenium + phantomjs 强大的网络爬虫

    1.selenium

        1.定义:Web自动化测试工具,应用于Web自动化测试
        2.特点
            1.可运行在浏览器上,根据指令操作浏览器,让浏览器自动加载页面
            2.只是工具,不支持浏览器功能,只能与第三方浏览器结合使用
        3.安装
            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值