Selenium爬虫
生活随笔
收集整理的這篇文章主要介紹了
Selenium爬虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import re
import requests# 偽裝頭部,反爬
headers = {'Host': 'm.weibo.cn','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36','X-Requested-With': 'XMLHttpRequest'
}
# 目標微博用戶地址
url = "https://m.weibo.cn/api/container/getIndex?type=uid&value=1182391231&containerid=1076031182391231"
response = requests.get(url, headers=headers)
# 返回response為json格式
weibo_data = response.json()
for mblog_data in weibo_data['data']['cards']:try:# 獲取微博文本內容content_data = mblog_data['mblog']['text']# 過濾特殊符號p = re.compile(r'(<span.*>.*</span>)*(<a.*>.*</ a>)?')content_data = re.sub('[^\u4e00-\u9fa5]', '', content_data)content_data = p.sub(r'', content_data)# 獲取微博發布時間time_data = mblog_data['mblog']['created_at']print(content_data)print(time_data)except:pass
import time
from selenium import webdriver
import csv# 聲明瀏覽器對象,使用Chromedriver
option = webdriver.ChromeOptions()
# “有頭”模式,即可以看到瀏覽器界面,若要隱藏瀏覽器,可設置為 "headless"
option.add_argument('head')
# 得到操作對象
driver = webdriver.Chrome(options=option)
# 模擬瀏覽器打開教育部官網信息檢索頁
driver.get('https://hudong.moe.gov.cn/sousuo/web/search?channelid=244081')# 找到搜索欄文字輸入框,輸入搜索關鍵字
driver.find_element_by_id('searchword').send_keys("立德樹人")
# 找到“搜索”按鈕,模擬點擊
driver.find_element_by_id('wasSubmit').click()
# 停頓3秒,留足頁面加載時間
time.sleep(3)# 創建/打開一個csv文件
f = open('立德樹人.csv', 'w', encoding='utf-8', newline='')
# 基于文件對象構建csv寫入對象
csv_writer = csv.writer(f)
# 構建csv列表頭
csv_writer.writerow(["標題", "發布時間"])# 第一次for循環,共有330頁數據
for page in range(330):# 第二次for循環,每頁共有20條信息for i in range(20):# i的輸出值是0到19,記得加1num = str(i + 1)# 用xpath獲取每一篇文章標題、發布時間title = driver.find_element_by_xpath('/html/body/div[1]/div/div[6]/div[2]/div[4]/dl[ ' + num + ' ]/dt/h2/a').textdate = driver.find_element_by_xpath('/html/body/div[1]/div/div[6]/div[2]/div[4]/dl[' + num + ']/dd[2]').text# 將數據寫入到csv文件中csv_writer.writerow([title, date])# 顯示數據print(title)print(date)# 提示爬取進度print("---------第" + str(page+1) + "頁爬取完畢---------")# 找到“下一頁”按鈕,模擬點擊driver.find_element_by_xpath('/html/body/div[1]/div/div[6]/div[2]/div[5]/div/ul/li[7]/a').click()
# 關閉csv文件
f.close()
總結
以上是生活随笔為你收集整理的Selenium爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | 用异源监督进行关系抽取:一
- 下一篇: 刘挺 | 从知识图谱到事理图谱