# -*- coding: utf-8 -*-
"""created on sun may 15 20:41:32 2016
@author: daxiong
"""
import requests,bs4,csv,time,random,os
#存放所有二級**
filename='combinedfile.csv'
#存放二級**目錄
site_hubei=""
pages_hubei=31
def get_sites(site,pages):
list_pages=
for page in range(1,pages+1):
thepage=site+"-"+"p"+str(page)+".html"
return list_pages
#獲取每一頁20個公司資訊儲存在list_rows_information
def get_page_information(elems):
#每一頁20個公司資訊儲存在list_rows_information裡面
list_rows_information=
num=len(elems)
for i in range(num):
try:
#公司名稱
elems_company_name=elems[i].select(".dblue")
company_name=elems_company_name[0].text
#主要產品
elems_main_product=elems[i].select("li")
main_product=elems_main_product[1].text.strip("\r\n")
#****
elems_contact=elems[i].select(".site_l")
content_contact=elems_contact[0].text
content_contact1=content_contact.strip("\r\n\r\n\t\r\n")
content_contact2=content_contact1.strip("\r\n")
list_content_contact=content_contact2.split("\r\n\r\n")
phone=list_content_contact[0]
address=list_content_contact[1]
except:
print("error at:",i)
continue
return list_rows_information
#把一頁內容寫入csv文件 ,list_tablecontent為二維列表[[a],[b],[c]]
def write_table_to_csv(filename,list_tablecontent):
#對列**式修改,字串寫入的格式不對
file=open(filename,'w',newline='')
writer1=csv.writer(file)
writer1.writerows(list_tablecontent)
file.close()
#寫入所有檔案
def write_alltables_to_csvs(list_pages):
for i in range(pages_hubei):
try:
res=requests.get(list_pages[i])
soup=bs4.beautifulsoup(res.text,"lxml")
#綜合資訊
elems=soup.select(".clist_list_content_r")
#獲取每一頁20個公司資訊儲存在list_rows_information
list_rows_information=get_page_information(elems)
filename=str(i+1)+".csv"
write_table_to_csv(filename,list_rows_information)
time.sleep(random.randint(10,15))
except:
print("error at:",i)
continue
#主函式
#獲取32頁主要**
list_pages=get_sites(site_hubei,pages_hubei)
'''#生產所有csv檔案
write_alltables_to_csvs(list_pages)
'''i=3
res=requests.get(list_pages[i])
soup=bs4.beautifulsoup(res.text,"lxml")
elems=soup.select(".clist_list_content_r")
#****
elems_contact=elems[2].select(".site_l")
content_contact=elems_contact[0].text
content_contact1=content_contact.strip("\r\n\r\n\t\r\n")
content_contact2=content_contact1.strip("\r\n")
list_content_contact=content_contact2.split("\r\n\r\n")
#有時候資訊會缺失,用正規表示式篩選text內容
phone=list_content_contact[0]
address=list_content_contact[1]
i=2和i=9錯誤
iOS 熱更新方案
由於蘋果在2017年3月左右更新了開發者協議,禁止需要線上審核的應用進行熱更新,所以請大家慎用 企業版不需要提交審核當然是可以使用的 一 jspatch 熱更新時,從伺服器拉去js指令碼。理論上可以修改和新建所有的模組,但是不建議這樣做。建議 用來做緊急的小需求和 修復嚴重的線上bug。二 lua指...
Hive增量更新方案
hive增量更新方案 方案一 總結出來業界可行方案 1 hive原始表提前規劃好以時間分割槽,初始化裝載源庫記錄為base table 最新資料 2 每個相關表都會有乙個timestamp列,對每一行操作做了修改,都會重置這列timestamp為當前時間戳 3 新增資料通過sqoop 支援當天抽取 ...
Unity 實時陰影新方案
大家都知道,實時光產生陰影的效能開銷很大,為了在移動端有更好的效能表現,所以在網上參考了一些方案,總結了乙個陰影shader去解決實時光效能開銷過大的問題。1.陰影shader,產生陰影的物體需要使用這個shader shader custom playershadow shadowinvlen s...