python的BeautifulSoup實現抓取網頁資料
1環境:pycharm,python3.4
2.原始碼解析
import requests
import re
from bs4 import BeautifulSoup#通過requests.get獲取整個網頁的資料
def getHtmlText(url):try:
r = requests.get(url)
# to cheack r.status_code is your expected
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "craw failed"
#下圖是網頁中的內容:
#解析頁面內容,通過find_all函式find所有的a標籤的內容,返回一個list,
然後通過正則表示式匹配re.findall(r"[s][zh]\d{6}", href,得到href中的諸如sh201002或者sz201001這樣的號碼;將所有得號碼賦給一個list儲存
def getHtmlList(lst, list_url):
html = getHtmlText(list_url)soup = BeautifulSoup(html, "html.parser")
a = soup.find_all('a')
for i in a:
try:
href = i.attrs['href']
lst.append(re.findall(r"[s][zh]\d{6}", href)[0])
except:
continue
print("lst:", lst)
#下面函式作用:通過上一個函式得到的號碼,傳給這個函式,拼成另一個url,獲取這個url網頁中的資料
抓取過程同理;不同之處是這裡通過soup.find("div", attrs={'class': 'stock-bets'})即:find函式抓取所有div標籤,屬性是stock-bets的內容,),find只返回第一個符合條件的結果,所以soup.find()後面可以直接接.text或者get_text()來獲得標籤中的文字;find_all()得到的所有符合條件的結果和soup.select()一樣都是列表list
def getHtmlInfo(lst, info_url, fpath):for l in lst:
info_url = info_url + l + ".html"
html = getHtmlText(info_url)
try:
if html == "":
continue
soup = BeautifulSoup(html, "html.parser")
betsInfo = soup.find("div", attrs={'class': 'stock-bets'})
infoDict = {}
name = betsInfo.find_all(attrs={'class': 'bets-name'})[0]
infoDict.update({"name": name.text.split()[0]})
#進一步得到標籤是dd和dt的所有資料,所以這裡用的find_all,返回一個list,這裡dd是key值,dt可看成value值,存入字典
keylist = betsInfo.find_all("dd")
keyvalue = betsInfo.find_all("dt")
for i in range(len(keylist)):
try:
key = keylist[i].text
val = keyvalue[i].text
dict2 = {'key': 'val'}
infoDict.update(dict2)
# infoDict[key] = val
except:
print("error")
#將我們要的資料寫入檔案
f.write(str(infoDict) + '\n')
except:
continue
#主函式,呼叫上面的抓取網頁的函式即可
def main():
list_url = "http://quote.eastmoney.com/stocklist.html"
info_url = "https://gupiao.baidu.com/stock/"
output_file = './stockInfo.txt'
slist = []
getHtmlList(slist, list_url)
getHtmlInfo(slist, info_url, output_file)
main()
相關推薦
python的BeautifulSoup實現抓取網頁資料
1環境:pycharm,python3.4 2.原始碼解析 import requests import re from bs4 import BeautifulSoup #通過requests.get獲取整個網頁的資料 def getHtmlText(url):
有搜尋條件根據url抓取網頁資料(java爬取網頁資料)
最近有一個任務抓取如下圖的網頁資料 要獲取前一天的資料進行翻頁抓取資料並存入資料庫 如果就只是抓取當前頁的資料 沒有條件和翻頁資料 這個就比較簡單了 但是要選取前一天的資料,還有分頁資料 一開始的思路就想錯了(開始想的是觸發查詢按鈕和
python抓取網頁資料處理後視覺化
抓取文章的連結,訪問量儲存到本地 1 #coding=utf-8 2 import requests as req 3 import re 4 import urllib 5 from bs4 import BeautifulSoup 6 import sys 7 import code
Python抓取網頁資料的終極辦法
假設你在網上搜索某個專案所需的原始資料,但壞訊息是資料存在於網頁中,並且沒有可用於獲取原始資料的API。 所以現在你必須浪費30分鐘寫指令碼來獲取資料(最後花費 2小時)。 這不難但是很浪費時間。 Pandas庫有一種內建的方法,可以從名為re
C語言實現抓取網頁原始碼
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h&
Java抓取網頁資料(原網頁+Javascript返回資料)
轉載請註明出處! 有時候由於種種原因,我們需要採集某個網站的資料,但由於不同網站對資料的顯示方式略有不同! 本文就用Java給大家演示如何抓取網站的資料:(1)抓取原網頁資料;(2)抓取網頁Jav
抓取網頁資料 A標籤的HREF 值
在工作中,我們有時候需要從特定的網頁中抓取我們想要的資料,由於工作的需要,我給大家推薦一個專門的抓取類:Winista.HtmlParser.dll 當我們需要從有規律的網頁中提取資料時,如table tr td; ul li之類的,如果用正則表示式,或者做字串的處理,會非常
實現抓取網頁圖片(JAVA實現)
最近學習網頁設計,想仿網路上的一個頁面,圖片素材一個一個地儲存起來太麻煩。就想著裡利用JAVA來實現一個小小的網頁圖片爬蟲,程式碼很簡單,不一會兒就實現了,但是當我訪問https協議的圖片時,一直報javax.net.ssl.SSLKeyException異常,到我儲
Python爬蟲 BeautifulSoup抓取網頁資料 並儲存到資料庫MySQL
最近剛學習Python,做了個簡單的爬蟲,作為一個簡單的demo希望幫助和我一樣的初學者 程式碼使用python2.7做的爬蟲 抓取51job上面的職位名,公司名,薪資,釋出時間等等 直接上程式碼,程式碼中註釋還算比較清楚 ,沒有安裝mysql需要遮蔽掉相關程式碼:#!/u
node.js 小爬蟲抓取網頁資料(2)
node.js 小爬蟲抓取網頁資料 在原來的基礎上,採用了promise的模組,使其可以一次性多頁面的爬取網頁資料。 var http = require('http') var Promise = require('promise') var cheerio = re
抓取網頁資料並解析Android
這天遇到這樣一個需求:這種頁面資料可以抓取嗎? 隨後提供了賬號、密碼和網站地址: 帳號:kytj1 密碼:****************** 登陸地址:http://student.tiaoji.kaoyan.com/tjadm 主要思路: 1、使用F
goLang 多執行緒抓取網頁資料
突然有個想法想用goLang快速的抓取網頁資料,於是想到了 多執行緒進行頁面抓取 package main import ( "fmt" "log" "net/http" "os" "st
【php網頁爬蟲】php抓取網頁資料
外掛介紹: PHP Simple HTML DOM解析類:Simple HTML DOM parser 幫我們很好地解決了使用 php html 解析 問題。可以通過這個php類來解析html文件,對其中的html元素進行操作 (PHP5+以上版本)。 使用方法: 1
R語言實現簡單的網頁資料抓取
在知乎遇到這樣一個問題。 這是要爬取的內容的網頁: R語言的程式碼的實現方式如下: #安裝XML包 >install.packages("XML") #載入XML包 > l
Android系統匯入burp證書實現抓取資料包
Burpsuit設定代理 瀏覽器設定代理 瀏覽器訪問IP下載burp證書 匯出的證書後綴名為.der,這裡我們更改字尾名為.crt 匯入手機中 複製貼上在我們能記住的目錄 後
kettle抓取網頁上的資料儲存到資料表中
今天做一個利用kettle抓取網頁資料儲存到資料表中的demo,如抓取AA市的空氣質量AQI 1.檢視網頁資訊 2.按下開發者工具,檢視虎丘空氣質量日報的請求 3.弄懂了網頁請求,並通過檢視資料格式,可以在資料庫中建表,表格如下 4.接下來就是在kettle中進行操
php抓取網頁內容,獲取網頁資料
php通過simple_html_dom實現抓取網頁內容,獲取核心網頁資料,將網頁資料寫入本地 xxx.json 檔案 其程式碼實現邏輯: 1. 引入simple_html_dom.php檔案 require_once 'simple_ht
Python爬蟲:十分鐘實現從資料抓取到資料API提供
依舊先從爬蟲的基本概念說起,你去做爬蟲做資料抓取,第一件事想必是去檢視目標網站是否有api。有且可以使用的話,皆大歡喜。 假如目標網站自身不提供api,但今天你心情不好就想用api來抓資料,那
c# 抓取網頁驗證碼並post資料
如果想開發半自動的註冊機程式,那麼把驗證碼讀取到winform裡面,然後提交資料是必須的流程,這篇博文記錄一下如何抓取網頁上面的驗證碼,注意不是驗證碼識別。有的網站會驗證Cookie,有的不會,本文包含Cookie讀取提交。 首先生命一個全域性的Cookie變數 priva
Python抓取網頁動態資料——selenium webdriver的使用
文章目的 當我們使用Python爬取網頁資料時,往往用的是urllib模組,通過呼叫urllib模組的urlopen(url)方法返回網頁物件,並使用read()方法獲得url的html內容,然後使用BeautifulSoup抓取某個標籤內容,結合正則表示式過濾。但是,用u