python爬虫练习系列之一:获取csdn文章列表(含执行js脚本)

【目标】

无需登录,直接获取博客下所有文章列表,包括:地址、标题、阅读数、点赞数等,供后续下载之用。采用python加selenium实现。中间会执行js脚本范例,去掉部分影响页面显示效果的元素。

【范例】

  #pip install selenium

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def exec_js(browser, js_str):
    browser.execute_script(js_str)
chrome_options = Options()
browser1 = webdriver.Chrome(options=chrome_options)
url = 'https://blog.youkuaiyun.com/cdl3'
browser.get(url)
browser.maximize_window()
time.sleep(2)
# 关闭各种登录弹窗
exec_js(browser1, '$(".login-box").css("display","none")')
exec_js(browser1, '$(".passport-login-tip-container").css("display","none")')
exec_js(browser1, '$(".csdn-toolbar-creative-mp").css("display","none")')
main_content = browser1.find_element(By.CLASS_NAME, 'mainContent')
if main_content:
    article_list = main_content.find_elements(By.TAG_NAME, 'article')
    for article in article_list:
        url2 = article.find_element(By.TAG_NAME, 'a').get_attribute('href')
        title = article.find_element(By.TAG_NAME, 'h4').text
        detail = article.find_element(By.CLASS_NAME, 'blog-list-content').text

        view_num = article.find_element(By.CLASS_NAME, 'view-num').text.replace('·', '')
        dianzan_num = article.find_element(By.CLASS_NAME, 'give-like-num').text.replace('·', '')
        print(url2, title, detail, view_num, dianzan_num)
input('请输入....')

 【实现效果】

【发文章不易,请多多点赞或关注支持!谢谢您的美意!】 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值