1. 程式人生 > >【附上解釋】爬取A股所有上市公司的資訊並存儲到資料庫或者是csv檔案中

【附上解釋】爬取A股所有上市公司的資訊並存儲到資料庫或者是csv檔案中

輸入到mysql版

輸出會有警告,但是不影響。
附上了詳細的解釋~

import pandas as pd
import requests
import random
from bs4 import BeautifulSoup
import pymysql
from sqlalchemy import create_engine



def get_one_page(i):
    # 使用ip代理,隨機代理ip
    # 設定headers 這些都是為了避免訪問過於頻繁被禁止
    try:
        IPs = [{'HTTP': 'HTTP://118.190.95.35:9001'}
, {'HTTP': 'HTTP://61.135.217.7:80'}, {'HTTP': 'HTTP://116.1.11.19:80'}] reportTime = '2017-12-31' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', 'Referer'
: 'http://s.askci.com/stock/a/?reportTime=%s' % reportTime + '&pageNum=178' } url = 'http://s.askci.com/stock/a/?reportTime=%s' % reportTime + '&pageNum=%d' % i response = requests.get(url, headers=headers, proxies=random.choice(IPs)) if response.status_code == 200: return
response.text return None except requests.RequestException: print("爬取出錯") def parse_one_page(html): soup = BeautifulSoup(html, 'lxml') # 選擇id為myTable04的控制元件,程式碼中有解釋 content = soup.select("#myTable04")[0] # 第一行設定為column,並且選第一個(因為是一個list), 其實也只有一個 tbl = pd.read_html(content.prettify(), header=0)[0] # 強制修改列名,中文列名不好寫入資料庫 tbl.columns = ['serial_number', 'stock_code', 'stock_abbre', 'company_name', 'province', 'city', 'main_business_income', 'net_profit', 'employee', 'listing_date', 'zhaogushu', 'financial_report', 'industry_classification', 'industry_type', 'main_business'] return tbl def generate_mysql(db, user, password, port): # 創立連線 # db就是需要資料庫中的schema 選一個schema就好了 conn = pymysql.connect( host='localhost', user=user, password=password, port=port, charset='utf8', db=db ) cursor = conn.cursor() # 建立資料庫 sql = 'CREATE DATABASE if not exists %s' % db # 執行命令 cursor.execute(sql) # 建立表 sql = 'CREATE TABLE if not exists listed_company (serial_number INT(20) NOT NULL, stock_code VARCHAR(20), stock_abbre VARCHAR(20), company_name VARCHAR (20),province VARCHAR (20), city VARCHAR (20), main_business_income VARCHAR(20), net_profit VARCHAR (20), employee INT (20), listing_date DATE, zhaogushu VARCHAR(20), financial_report VARCHAR (20), industry_classification VARCHAR(20), industry_type VARCHAR(100), main_business VARCHAR(200), PRIMARY KEY (serial_number))' # 執行命令 cursor.execute(sql) # 斷開連結 conn.close() def write_to_sql(tbl, db, user, password, port): engine = create_engine('mysql+pymysql://%s:%[email protected]:%d/%s?charset=utf8' % (user, password, port, db)) tbl.to_sql('listed_company', con=engine, if_exists='append', index=False) def main(page): # 設定預想database db = 'test' user = 'root' password = '1234' port = 3306 # 生成資料庫 generate_mysql(db, user, password, port) # 選page這麼多頁 for i in range(1, page + 1): # 讀取網頁html html = get_one_page(i) # 分析得到dataframe tbl = parse_one_page(html) # 將dataframe寫到sql中 write_to_sql(tbl, db, user, password, port) if __name__ == '__main__': reportTime = '2017-12-31' url = 'http://s.askci.com/stock/a/?reportTime=%s' % reportTime + '&pageNum=%d' # 最大設定為178,輸入頁數就好了 main(2)

輸出到csv檔案版本

相關推薦

附上解釋A所有上市公司資訊並存資料庫或者csv檔案

輸入到mysql版 輸出會有警告,但是不影響。 附上了詳細的解釋~ import pandas as pd import requests import random from bs4 import BeautifulSoup import pymysql f

Python爬蟲微信公眾號文章資訊準備工作

有一天發現我關注了好多微信公眾號,那時就想有沒有什麼辦法能夠將微信公眾號的文章弄下來,而且還想將一些文章的精彩評論一起搞下來。參考了一些文章,通過幾天的研究基本上實現了自己的要求,現在記錄一下自己的一些心得。 整個研究過程如下: 1.瞭解微信公眾號文章連結的組成,歷史文章API組成,單個文章

貓眼top100電影並存在本地csv檔案

import requests from bs4 import BeautifulSoup import time import csv def getcontent(url): #網頁請求頭

Python3 爬蟲博客園首頁所有文章

表達式 技術 標記 itl 1.0 headers wow64 ignore windows 首先,我們確定博客園首頁地址為:https://www.cnblogs.com/ 我們打開可以看到有各種各樣的文章在首頁,如下圖: 我們以上圖標記的文章為例子吧!打開網頁源碼,搜

Python3爬蟲中國國家地理的62個《古鎮》和363張攝影照片

宣告:爬蟲為學習使用,請各位同學務必不要對當放網站或i伺服器造成傷害。務必不要寫死迴圈。 - 思路:古鎮——古鎮列表(迴圈獲取古鎮詳情href)——xx古鎮詳情(獲取所有img的src) - from bs4 import BeautifulSoup import u

使用requests配合lxml+xpathB2B網站

@匯入類庫 import requests from lxml import etree import time @準備請求頭,以偽裝客戶端瀏覽器 # 請求頭,可以由F12頁面控制檯或fi

網路爬蟲豆瓣電影Top250評論

前言 本爬蟲大致流程為: (1)分析網頁——分析網站結構 (2)傳送請求——通過requests傳送請求 (3)響應請求——得到請求響應的頁面 (4)解析響應——分析頁面,得到想要的資料 (5)儲存文字——以txt格式儲存 使用環境 anaconda3 pyt

大數據全部的校園新聞

series scl nco rip read 數據處理 info imp taf 1.從新聞url獲取新聞詳情: 字典,anews def anews(url): newsDetail={} res=requests.get(url)

Python3爬蟲美女圖新姿勢--Redis分散式爬蟲初體驗

一、寫在前面   之前寫的爬蟲都是單機爬蟲,還沒有嘗試過分散式爬蟲,這次就是一個分散式爬蟲的初體驗。所謂分散式爬蟲,就是要用多臺電腦同時爬取資料,相比於單機爬蟲,分散式爬蟲的爬取速度更快,也能更好地應對IP的檢測。本文介紹的是利用Redis資料庫實現的分散式爬蟲,Redis是一種常用的菲關係型資料庫,常用資料

webmagic百度知道的問答對並存資料庫

(1)定義資料庫爬取的title: package shuju; public class baidu { private String author;// 編號 public String getAuthor() {

Django實戰: Python爬蟲鏈家上海二手房資訊,存入資料庫並在前端顯示

好久沒寫Django實戰教程了,小編我今天就帶你把它與Python爬蟲結合做出個有趣的東西吧。我們將開發這樣一個應用,前端使用者可以根據行政區劃,房廳數和價格區間選擇需要爬取的二手房房源資訊,後臺Python開始爬取資料。爬取資料完成後,通過Django將爬來的資料存入資料庫

Python爬蟲實戰專案一大眾點評團購詳情及團購評論

1 專案簡介 從大眾點評網收集北京市所有美髮、健身類目的團購詳情以及團購評論,儲存為本地txt檔案。 技術:Requests+BeautifulSoup 以美髮為例:http://t.dianping.com/list/beijing?q=美髮 爬取內容包括: 【團購詳情】團購名稱、原

每週一盜版小說網的小說

【本帖持續更新,直到能將一本書全部爬到一個.txt檔案中】 一:準備工作         爬取的網站地址:http://b.faloo.com/tag/6293.html &

Python3爬蟲-小說某小說網小說2/2--利用下一頁抓

宣告:爬蟲為學習使用,請各位同學務必不要對當放網站或i伺服器造成傷害。務必不要寫死迴圈。 - 詳細思路參照程式碼註釋: 如下:網址無任何規律,但是頁面有一個下一頁。那是要抓到下一頁的地址就能把小說全部抓取。 - from bs4 import BeautifulSoup

Python3爬蟲-小說某小說網小說1/2--利用網址順序抓

宣告:爬蟲為學習使用,請各位同學務必不要對當放網站或i伺服器造成傷害。務必不要寫死迴圈。 - 練習目標:爬取https://b.faloo.com/BuyBook.aspx?id=526024 《我的高中女友門》 - 解釋請看程式碼註釋: 主要是網頁是xxx/1.h

python爬蟲-微博王思聰所有微博資料

1. 準備: 代理IP 。網上有很多免費代理ip,如西刺免費代理IP http://www.xicidaili.com/,自己可找一個可以使用的進行測試;  抓包分析 。通過抓包獲取微博內容地址。當然web下的api地址可以通過瀏覽器獲得。 以下是通過瀏覽器除錯獲得

爬蟲小程式:鬥魚所有房間資訊Xpath(執行緒池版)

# 本程式親測有效,用於理解爬蟲相關的基礎知識,不足之處希望大家批評指正 from queue import Queue import requests from lxml import etree from multiprocessing.dummy import Pool import t

爬蟲小程式:鬥魚所有房間資訊Xpath(多執行緒版)

    # 本程式親測有效,用於理解爬蟲相關的基礎知識,不足之處希望大家批評指正 from queue import Queue import requests from lxml import etree from threading import Thread "

爬蟲小程式:鬥魚所有房間資訊Xpath(多程序版)

  # 本程式親測有效,用於理解爬蟲相關的基礎知識,不足之處希望大家批評指正 1 import requests 2 from lxml import etree 3 from multiprocessing import JoinableQueue as Queue 4 from

Python爬蟲網易、騰訊、新浪、搜狐新聞到本地

這個實驗主要爬取新聞網站首頁的新聞內容儲存到本地,爬取內容有標題、時間、來源、評論數和正文。 工具:python 3.6 谷歌瀏覽器 爬取過程: 一、安裝庫:urllib、requests、BeautifulSoup 1、urllib庫:Urlli