# -*- coding: utf-8 -*-
"""created on sat oct 22 17:57:13 2016
@author: hhxsym
買糧網搜尋列表獲
"""import os
import requests
from bs4 import beautifulsoup
inpath="c:\\users\\hhxsym\\desktop\\課程**ython爬蟲"
inpath = unicode(inpath , "utf8")
os.chdir(inpath) #不做編碼轉換後,中文路徑無法開啟,更改
def get_search_list(keyword = none, page = 1):
url = ''
payload=
response = requests.get(url,params=payload) # requests.get(url位址,關鍵字url引數)
print response.url #檢視返回內容的url位址
print response.status_code #列印狀態碼
soup = beautifulsoup(response.text,'lxml')
#print soup
names = soup.select('body > div.wrap > div.merchantlist > div.p_datalist > div.p_dataitem > span.n1 > a')
#css樣式, .後面跟的是css樣式,找到所有符合條件的a標籤的字串列表
#names = soup.select('body > div.wrap > div.merchantlist > div > div.p_dataitem > span.n1 > a') #這個也可以
#names = soup.select('body > div.wrap > div.merchantlist > div.p_datalist > div:nth-child(2) > span.n1 > a') # 為啥這個不行,原因?
capitials = soup.select('body > div.wrap > div.merchantlist > div.p_datalist > div.p_dataitem > span.n3')
adds = soup.select('body > div.wrap > div.merchantlist > div.p_datalist > div.p_dataitem > span.n5')
categorys = soup.select('body > div.wrap > div.merchantlist > div.p_datalist > div.p_dataitem > span.n6')
with open('data.txt', 'w') as f:
f.write('公司名稱|註冊資本|公司位址|主營品類\n') #寫入標題行
for name, capitial, add, category in zip(names, capitials, adds, categorys):
name = name.get('title').strip() #剔除空格
capitial = capitial.text
add = add.text
category = category.text
data = [name, capitial, add, category+'\n']
#print '|'.join(data)
f.write('|'.join(data).encode('utf-8')) #寫入資料行
#f.write('|'.join(data)) #會報錯,unicodeencodeerror,解決辦法:編碼為utf-8
print '寫入成功!'
if __name__=='__main__':
get_search_list(u'玉公尺', 1)
#文字資料excel方法: 複製 -> 貼上到excel -> 選單欄"資料" -> 分列 -> 『分隔符號』 ->……
url傳遞中文引數
send.html var key 測試 通常,如果我們直接將中文寫在url中,得到的卻是一堆亂碼 e6 b5 8b e8 af 95 因為這涉及到編碼問題。如果你設定了編碼方式為utf 8,則它會將中文編譯為英文,如果對應的頁面的編碼方式也為utf 8,則就直接顯示編譯後的中文 解決方法 1.en...
python 引數傳遞 Python 引數傳遞
python中的變數 乙個變數是區域性還是全域性,在編譯函式的時候就已經決定,因此讀變數值的時候也不會逐層向外查詢。變數是全域性還是局域,根據如下3條 1.如果函式內部有global語句,那麼它宣告的變數是全域性的。2.如果函式內部有對變數的賦值語句,那麼它是局域的。3.除此之外都是全域性的。注意1...
python 引數傳遞 python引數傳遞
python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...