task4

大作业:爬取腾讯新闻

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

    用selenium爬取https://news.qq.com/ 的热点精选
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Thwzx4X-1588001147685)(1585810800%281%29.png)]
    热点精选至少爬50个出来,存储成csv
    每一行如下
    标号(从1开始),标题,链接,…(前三个为必做,后面内容可以自己加)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZQmuC6aC-1588001147690)(1585810759%281%29.png)]

juptyer今天总是崩,浪费很多时间。。。
ajax细节使用涉及不多,粗略了解
csv写入文件参数出错…自己不太会解决,结果爬取出了10条,具体还不清楚如何控制爬取的多少

什么是Ajax?

  • AJAX = 异步 JavaScript 和 XML。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

  • 而传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。AJAX它使我们可以通过 JavaScript 直接获取服务端最新的内容而不必重新加载页面。让 Web 更能接近桌面应用的用户体验。

  • 说白了,AJAX 就是浏览器提供的一套 API,我们可以通过 JavaScript 调用,从而实现通过代码控制请求与响应。实现网络编程。

Python 文件操作中的读写模式:open(path, ‘-模式-’,encoding=‘UTF-8’)

读写模式:
  • r :只读
  • r+ : 读写
  • w : 新建(会对原有文件进行覆盖)
  • a : 追加
  • b : 二进制文件
import time
from  selenium import webdriver
import csv 
driver=webdriver.Chrome(executable_path=r"D:\86151\桌面\Datawhale\python爬虫\Python爬虫编程实践\task3\chromedriver.exe")
driver.get("https://news.qq.com")
#了解ajax加载
for i in range(1,100):
    time.sleep(2)
    driver.execute_script("window.scrollTo(window.scrollX, %d);"%(i*200))
from bs4 import BeautifulSoup
html=driver.page_source
bsObj=BeautifulSoup(html,"lxml")
jxtits=bsObj.find_all("div",{"class":"jx-tit"})[0].find_next_sibling().find_all("li")
print("index",",","title",",","url")
#f=open(r'D:\86151\桌面\Datawhale\python爬虫\Python爬虫编程实践\task4\results.csv','a',encoding='GB2312')
#csv_writer=csv.writer(f)
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) 
   # csv_writer.writerow([i+1],text,url)
#f.close()          读写不太清楚,,,这里语法出错

而且…之前爬取一次成功后,就一直在运行,没有出结果
在这里插入图片描述

进阶加餐-知乎爬虫

链接如下

https://www.zhihu.com/search?q=Datawhale&utm_content=search_history&type=content

用requests库实现,不能用selenium网页自动化

提示:

该链接需要登录,可通过github等,搜索知乎登录的代码实现,并理解其中的逻辑,此任务允许复制粘贴代码

与上面ajax加载类似,这次的ajax加载需要用requests完成爬取,最终存储样式随意,但是通过Chrome的开发者工具,分析出ajax的流程需要写出来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jTltlTOI-1588001147694)(1585811566%281%29.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值