大作业要求:
1、了解ajax加载
2、通过chrome开发工具,触发请求,并获取数据
3、用到selenium库
思路如下:
1、用selenium模拟浏览器操作,获得ul/li下面的data
2、用beautiful soup4解析缓存下来的data
3、加载pandas库,将data导出至csv文件
import time
from selenium import webdriver
driver=webdriver.Chrome(executable_path="C:\Program Files\Anaconda3\chromedriver.exe")
driver.get("https://news.qq.com")
#进程挂起时间2s
for i in range(1,50):
time.sleep(2)
driver.execute_script("window.scrollTo(window.pageXOffset, %d);"%(i*200))
#get source
from bs4 import BeautifulSoup
html=driver.page_source
info_bs=BeautifulSoup(html,"lxml")
#data filter
jxtits=info_bs.find_all("div",{"class":"jx-tit"})[0].find_next_sibling().find_all("li")
#数据导出至列表
list_news = []
i = 0
for i,jxtit in enumerate(jxtits):
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)
info_news = [i + 1, text, url]
list_news.append(info_news)
#导出CSV文件
import pandas as pd
name = ['index', 'title', 'url']
test = pd.DataFrame(columns=name, data=list_news)
test.to_csv('E:/DATAWHALE/12期爬虫学习/news.csv')
CSV文件截图:
(附注:特别感谢FlyApple同学的指点,作业得以圆满完成!)
--------学习小结--------
1、网络爬虫的原理(简要概述)
2、爬虫开发流程(简要概述)
3、学习小结
最后衷心感谢各位助教老师的倾心付出,以及各位同学的热情交流。希望我们彼此在学习的路上一路前行!