python爬取數據,selenium是為web自動化測試開發的,可以模擬任何網頁操作,學會了,不僅可以爬取信息,還可以重復做各種無腦網頁操作。
selenium適合爬取動態網頁,所見即所得,雖然慢了些。有人不喜歡,但個人覺得挺方便的,因為不用學習復雜的各種網頁解析技能。但有些反爬網站,針對selenium的,那就得換工具了。
但對于致力于學習爬蟲的小伙伴,不建議學這個。老老實實學爬蟲該學的各種技術,能夠進行大規模甚至并行乃至分布式爬取。
python爬取網站?靜態網頁的話,爬取較為簡單。教程很多。
教程鏈接
注意:
使用不同的瀏覽器,需要配置不同的瀏覽器驅動。
需要學習XPath技術和正則表達式技術,xpath能夠讓程序快速定位,正則表達式打輔助,用來進一步提取需要的信息。
python爬蟲教程,Ctrl + shift + c 打開網頁源代碼,用鼠標左鍵選擇網頁中你想定位的地方,源代碼對應位置會高亮。鼠標右鍵點擊高亮的代碼,復制xpath
注意:
直接復制的xpath pattern雖然能用,但比較死板不夠靈活,網頁的結構發生微小的變動,就無法定位了。需要自己進一步根據網頁源代碼改寫xpath路徑。找出源碼中不變的xpath pattern用來定位。
from selenium import webdriver
import pandas as pd
import numpy as npquery_list = ['deep learning']result_list = []
failed = []
driver = webdriver.Chrome()for query_text in query_list:try:driver.get('https://www.google.com')driver.implicitly_wait(1)# 定位搜索框,并輸入查詢詞driver.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input').send_keys('%s\n' % query_text) # 這里的xpath就是右鍵復制過來的except:result_list.append(np.nan)continuetry:res = driver.find_element_by_xpath('//*[@id="wp-tabs-container"]/div[1]/div[3]/div/div/div/div[2]/h2/span').text # 這里的xpath就是右鍵復制過來的result_list.append(res)except:result_list.append(np.nan)res = pd.DataFrame({'drug_name': query_list,'result':result_list})print(res)
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态