Datawhale 爬虫 Task 04

爬取腾讯新闻
1.了解ajax加载
2.通过chrome的开发者工具,监控网络请求,并分析
3.用selenium完成爬虫:
用selenium爬取https://news.qq.com/ 的热点精选

import time
from  selenium import webdriver
import pandas as pd
from bs4 import BeautifulSoup

driver = webdriver.Chrome(executable_path='C:\ProgramData\Anaconda3\Scripts\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))

html=driver.page_source
#解析html
bsObj=BeautifulSoup(html,"lxml")

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

res = pd.DataFrame()

print("index",",","title",",","url")
csvRow_index = []
csvRow_title = []
csvRow_url = []
for i,jxtit in enumerate(jxtits):
    try:
        text=jxtit.find_all("img")[0]["alt"]
        csvRow_title.append(text)
    except:
        text=jxtit.find_all("div",{"class":"lazyload-placeholder"})[0].text
        csvRow_title.append(text)
    try:
        url=jxtit.find_all("a")[0]["href"]
        csvRow_url.append(url)
    except:
        print(jxtit)
        csvRow_url.append(url)
    csvRow_index.append(i)
    print(i+1,",",text,",",url) 
csv_file = pd.DataFrame()
csv_file['index'] = csvRow_index
csv_file['title'] = csvRow_title
csv_file['url'] = csvRow_url
csv_file.to_csv('csv_file.csv',index=None)

爬取结果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值