利用python中的pyquery庫簡單的抓取資料

2021-07-05 20:17:52 字數 1961 閱讀 1827

記得還是7月份下旬的時候無意看到pyquery庫,能做爬蟲,還不需要寫正則什麼的,還是蠻實用的,簡單的寫了一些**,抓取網路資料,裝的是anaconda 預設是2.7版本,**如下:

from pyquery import pyquery as pq

import pandas as pd

from datetime import datetime

import mysqldb

shars_tabls=pd.dataframe();

code=

name=

indname=

for i in range(1, 10):

urlxx = "" + str(i) + ".html"

v_source = pq(url=urlxx)

for data in v_source('tr'):

v_code = pq(data).find('td').eq(0).text()

v_name = pq(data).find('td').eq(1).text()

v_ind = pq(data).find('td').eq(5)

xx=x=""

for i in range(len(pq(v_ind).find('a'))):

v_indname = pq(v_ind).find('a').eq(i).text()

x=','.join(xx)

data =

frame =pd.dataframe(data)

frame1=frame[frame.v_name!=""]

frame1.to_excel("d:\\users\\zhoumeixu204\\desktop\\shearstable.xls",encoding="utf-8",index=false)

def test_create():

conn=mysqldb.connect(host="localhost",user="root",passwd="",db="dataframe")

cursor=conn.cursor()

sql="create table if not exists frame(code char(60) ,name varchar(500),indname varchar(500)) engine=innodb default charset=utf8"

cursor.execute(sql)

cursor.close()

conn.commit()

conn.close

test_create()

def test_insert():

dstart=datetime.now()

print "progaram start at"+dstart.strftime("%y-%m-%d %h:%m:%s")

conn=mysqldb.connect(host="localhost",user="root",passwd="",db="dataframe",use_unicode=true, charset="utf8")

cursor=conn.cursor()

sql="insert into frame(code,name,indname) values(%s,%s,%s)"

temp=zip(code,name,indname)

cursor.executemany(sql,temp)

cursor.close()

conn.commit()

conn.close

dend=datetime.now()

print("the time now is %s,total cost %s"%(dend.strftime("%y-%m-%d %h:%m:%s"),dend-dstart))

test_insert()

print("success")

利用python中的zipfile模組進行解壓縮

本文主要說解壓的問題 匯入模組 import zipfile 壓縮包所在路徑 file dir test.zip zf zipfie.zipfile file dir 檢視壓縮包內的檔案 以列表形式呈現 zf.namelist 將解壓的檔案儲存到指定的路徑下 zf.extractall some 匯...

Python中利用xpath解析HTML

在進行網頁抓取的時候,分析定位html節點是獲取抓取資訊的關鍵,目前我用的是lxml模組 用來分析xml文件結構的,當然也能分析html結構 利用其lxml.html的xpath對html進行分析,獲取抓取資訊。首先,我們需要安裝乙個支援xpath的python庫。目前在libxml2的 上被推薦的...

python中利用list實現stack

class mystack def init self self.maxsize 5000 self.max 1 self.l1 def setmaxsize self,s if isinstance s,int false print your input is not a number elif...