爬虫学习day04

本文介绍了一种使用AJAX技术的爬虫实战案例,通过与服务器异步交换数据,实现在不重新加载整个页面的情况下更新网页部分内容。文章详细展示了如何使用Python的selenium和BeautifulSoup库来抓取腾讯新闻网站上的精选新闻,包括设置ChromeDriver,滚动页面以加载更多内容,解析HTML源码,提取新闻标题和URL等关键信息。

爬虫学习day04

AJAX

即异步的 JavaScript 和 XML。AJAX 是一种用于创建快速动态网页的技术。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

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

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
在这里插入图片描述

实战:获取某精选

import time
from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome(executable_path="E:\Program Files(x86)\Application\Google\chromedriver.exe")
driver.get("https://news.qq.com")
#了解ajax加载
for i in range(1,100):
    time.sleep(10)
    driver.execute_script("window.scrollTo(window.scrollX, %d);"%(i*200))

html = driver.page_source
bs0bj = BeautifulSoup(html,"lxml")
jxtits = bs0bj.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) 

爬取内容:
在这里插入图片描述
在这里插入图片描述
一开始只能爬取10条,尝试了很多次,终于爬出来50+数据啦!
爬不出来的小伙伴建议把睡眠时间延长,最后一次设置了time.sleep(10),成功get100+数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值