python集成代码实现八爪鱼爬取知乎的所有功能+数据预处理

链接: link.
上一篇文章(链接在上面)是对每一部分进行较为详细的说明,这一篇文章将介绍爬取的集成好的代码块,以及对爬取来的数据进行预处理。

1.python集成代码实现八爪鱼爬取知乎的所有功能

```python
#!/usr/bin/env python
# coding: utf-8
import os
import pandas as pd
from selenium import webdriver
from lxml import etree
import time
import jieba
import re
import numpy as np


url1 = input("请输入您所需要爬取的网页(知乎)")

browser = webdriver.Chrome("/Users/apple/Downloads/chromedrivermac")
browser.get(url1)



try:
    #点击问题全部内容
    button1 = browser.find_elements_by_xpath("""//div[@class= "QuestionHeader-detail"]
    //button[contains(@class,"Button") and contains(@class,"QuestionRichText-more") 
    and contains(@class , "Button--plain")
    ]""")[0]
    button1.click()
except:
    print('这个问题比较简单,并没有问题的全部内容哦!')


#此网页就属于异步加载的情况
#那么我们就需要多次下滑
for i in range(20):
    browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    time.sleep(0.5)
    print(i)

#点击知乎的登陆弹窗
button2 = browser.find_elements_by_xpath("""//button[@aria-label = '关闭']""")[0]
button2.click()    

#点击知乎的“查看全部回答”按钮
button3 = browser.find_elements_by_xpath("""//div[@class = 'Question-main']
//a[contains(@class,"ViewAll-QuestionMainAction")    and contains(@class , "QuestionMainAction")  ]""")[1]
button3.click()


final_end_it = browser.find_elements_by_xpath("""//button[contains(@class,"Button") 
and contains(@class ,'QuestionAnswers-answerButton')
and contains(@class ,'Button--blue')

and contains(@class ,'Button--spread')
]""")
while final_end_it == [
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值