爬蟲學習筆記--用selenium 爬資料到Mysql
阿新 • • 發佈:2019-02-07
# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys import MySQLdb; import sys import time reload(sys) sys.setdefaultencoding('utf-8') con = MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='xiehui',charset="utf8") cur = con.cursor() fp = webdriver.FirefoxProfile() fp.set_preference("permissions.default.stylesheet",2) fp.set_preference("permissions.default.image",2) app = webdriver.Firefox(firefox_profile=fp) app.get("http://www.baidu.com") search_handle = app.current_window_handle print str(search_handle) + "------" search = app.find_element_by_xpath(".//*[@id='kw']") search.clear() search.send_keys("songganaiyi") searbtn = app.find_element_by_xpath(".//*[@id='su']").send_keys(Keys.ENTER) time.sleep(3) xiehuicitiao = app.find_element_by_xpath(".//*[@id='1']/h3/a") xiehuicitiao.click() time.sleep(3) all_handle = app.window_handles print str(all_handle)+"-----------" for handle in all_handle: if handle != search_handle: app.switch_to.window(handle) # print app.title # print app.current_url contents = app.find_elements_by_css_selector('div.para') for para in contents: print str(para.text).strip() cur.execute('insert into paras (para) values("%s");' % (str(para.text).strip())) cur.close() con.commit() elif handle == search_handle: print "error-----" app.quit()
這裡我用selenium模擬瀏覽器 爬取百度詞條裡的內容 儲存到Mysql
有幾個說明的地方
1.中文編碼 在Pycharm裡有時會亂碼 加上
# -*- coding:utf-8 -*-
和
import sys reload(sys) sys.setdefaultencoding('utf-8')
2.python 安裝 mysql的庫 會有錯 具體請看 這篇文章下載安裝
http://www.mamicode.com/info-detail-1222077.html
3.mysql 在插入過程中 我遇到了 字串有 單分號的 情況 這時會插入失敗
因此 插入語句 這裡請用雙引號
values("%s")