爬蟲day3 (爬取雪球網n頁資料)

2021-08-23 14:40:39 字數 1945 閱讀 5912

# 爬取雪球網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...