# 爬取雪球網n頁資料
# 用到 與mysql資料庫的互動
import requests
import json
import pymysql
class mysql_conn(object):
# 魔術方法, 初始化, 建構函式
def __init__(self):
self.db = pymysql.connect(host='127.0.0.1', user='root', password='123456', port=3306, database='py666')
self.cursor = self.db.cursor()
# 執行modify(修改)相關的操作
def execute_modify_mysql(self, sql):
self.cursor.execute(sql)
self.db.commit()
# 魔術方法, 析構化 ,析構函式
def __del__(self):
self.cursor.close()
self.db.close()
# 構造data
def godata(total):
data = {}
data['id'] = total['id']
data['title'] = pymysql.escape_string(total['title'])
data['description'] = pymysql.escape_string(total['description'])
data['target'] = pymysql.escape_string(total['target'])
return data
# 將所需資料遍歷存入mysql
def listgomysql(res_list):
for i in res_list:
# 獲取所需資料
total = json.loads(i['data'])
# 構造data
data = godata(total)
# 定義sql操作語句
sql = "insert into biao(uid,title,description,target) values ('%s','%s','%s','%s')" % (
data['id'], data['title'], data['description'], data['target'])
# sql = "insert into biao values('','','','')".format(**data)
# 例項化 mysql_conn物件
mc = mysql_conn()
# 呼叫方法
mc.execute_modify_mysql(sql)
# 將頁數n作為引數傳入,add函式完成獲取存入操作
def add(n):
next_max_id='-1'
k=0while k < n:
url=''+next_max_id+'&count=10&category=-1'
headers =
# 獲取資料
response = requests.get(url,headers=headers)
# str---dict
res_dict=json.loads(response.text)
next_max_id=res_dict['next_max_id']
# 獲取所需資料
res_list = res_dict['list']
# 將所需資料遍歷存入mysql
listgomysql(res_list)
next_max_id=str(next_max_id)
k += 1
add(10)
雪球網爬取資料並存入資料庫
from urllib import request import json import pymysql class mysql connect object 初始化的建構函式 def init self self.db pymysql.connect host 127.0.0.1 user ro...
爬蟲 爬取多頁資料
最近在寫乙個簡單的爬蟲,最開始使用的是bs4工具,但是後面接觸到xpath,覺得這個比較適合我哈哈.然後用xpath又重新寫了一遍,其中讓我困擾的還是多頁爬取,ip老是被封.網上找了很多方法,大多數都是說要建立乙個ip池,迴圈爬取多頁資料的時候,就換ip這樣就不會被封了.然後 ip有兩種,乙個要付費...
爬蟲(5)爬取多頁資料
我們點開其他年份的gdp資料時,會發現 的變化只有後面的數字變成了相應的年份,所以我們可以通過for迴圈來實現對多頁資料的爬取 from selenium import webdriver from bs4 import beautifulsoup import csv driver webdriv...