数据鲸爬虫实战冲刺(4),Datawhale,打卡,四


学习内容

  1. 了解ajax加载
  2. 通过chrome的开发者工具,监控网络请求,并分析
  3. 用selenium完成爬虫

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

用selenium爬取 https://news.qq.com/ . 的热点精选并存储为csv文件
代码如下:

import time
from selenium import webdriver
from bs4 import  BeautifulSoup

#此处用Edge浏览器,同Google Chrome
driver = webdriver.Edge('./msedgedriver')
driver.get("https://news.qq.com")

##ajax 加载
for i in range(1,100):
    time.sleep(1)
    # 滑动窗口
    driver.execute_script("window.scrollTo(window.scrollX, %d);"%(i*200))

html = driver.page_source
# 使用bs进行解析
bsObj = BeautifulSoup(html,'lxml')

jxtits = bsObj.find_all("div",{"class":"jx-tit"})[0].find_next_sibling().find_all("li")

print("index", ",", "title", ",", "url")
for i, jxtit in enumerate(jxtits):
    #     print(jxtit)

    try:
        text = jxtit.find_all("img")[0]["alt"]
    except:
        text = jxtit.find_all("div", {"class": "lazyload-placeholder"})[0].text
    try:
        url = jxtit.find_all("a")[0]["href"]
    except:
        print(jxtit)
    print(i + 1, ",", text, ",", url)

运行结果如下:
在这里插入图片描述

待补充:知乎爬虫部分(目前能力有限,理解的不是太清楚)