安裝requests庫
cmd安裝 pip install requests
import requests
r = requests.get(
"")#找出r的內容
r.text 解碼成文字檔案
r.content 看二進位制**(一般用於獲取用二進位制**)
#解碼方式
>>
>r.encoding 'utf-8'
http有很多請求型別(最常見)
get 請求,向特定資源傳送請求
post 請求,向指定資源提供資料和傳送請求
import requests
r = requests.get(
"")r.encoding =
'utf-8'
dict
=r = requests.get(
'',params=
dict
)print
(r.url)
#用params傳遞引數
有時候需要登入乙個**
#傳入使用者名稱和密碼
dict
=r =requests.post(
'',data =
dict
,headers = header)
r.status_code
#請求頭header防止反爬蟲。
header =
2字頭 代表請求已成功被伺服器接收成功
3字頭 301重定向 r.history
4字頭 請求錯誤
5、6字頭 伺服器錯誤
例項:爬取q房網
import requests
from lxml import etree
import csv
import time
defwritecsv
(item)
:with
open
('q房.csv'
,'a'
,encoding=
'utf-8'
)as f:
writer = csv.writer(f)
try:
writer.writerow(item)
except
:print
('write error'
)if __name__ ==
'__main__'
: headers =
start_url =
""for url in
range(1
,2):
houseurl = start_url+
str(url)
r = requests.get(houseurl,headers=headers)
time.sleep(1)
selector = etree.html(r.text)
xiaoqulist = selector.xpath(
'/html/body/div[4]/div/div/div[3]/ul/li'
)#print(xiaoqulist)
for xiaoqu in xiaoqulist:
name = xiaoqu.xpath(
'div[2]/div[1]/a/text()')[
0]#print(name)
bankuai = xiaoqu.xpath(
'div[2]/div[4]/div/text()')[
0]#print(bankuai)
junjia = xiaoqu.xpath(
'div[3]/div[1]/span[1]/text()')[
0]#print(junjia)
item =
[name,bankuai,junjia]
writecsv(item)
print
('正在抓取……………………'
,name)
#/html/body/div[4]/div/div/div[3]/ul/li[1]
#/html/body/div[4]/div/div/div[3]/ul/li[1]/div[2]/div[1]/a
#/html/body/div[4]/div/div/div[3]/ul/li[1]/div[2]/div[4]/div
#/html/body/div[4]/div/div/div[3]/ul/li[1]/div[3]/div[1]/span[1]
from lxml import etree
import requests
defspider
(url)
: r = requests.get(url,headers=headers,proxies=proxies)
return etree.html(r.text)
defget_all_url
(yeshu,neirong)
:for sousuoye in
range(1
,int
(yeshu)+1
):sousuo_url =
""+neirong+
"&_sug_type_=&s_from=input&_sug_=n&type=2&page="
+str
(yeshu)
+"&ie=utf8"
selector = spider(sousuo_url)
meiye_url = selector.xpath(
'//div[@class="txt-box"]/h3/a/@href'
)def
towrite
(wenzi,title)
:try
:with
open
('./wenjian/'
+title.replace(
'|','')
+'.txt'
,'wt'
,encoding=
'utf-8'
)as f:
f.write(wenzi)
print
(,title)
except
: proxies(
)def
spider_xiangqing_url
(url)
: selector = spider(url)
title = selector.xpath(
'//*[@id="activity-name"]/text()')[
0].strip(
) neirong = selector.xpath(
'//p/text()')[
0]wenzi = neirong.xpath(
'string(.)'
).strip(
).replace(
'\r',''
).replace(
'\n',''
) wenzi.encode(
'utf-8'
) towrite(wenzi,title)
if __name__ ==
'__main__'
: headers =
proxies =
sousuoneirong =
input
("請輸入搜尋內容"
) sousuoyeshu =
input
("請輸入搜尋頁數(必須是自然數)"
) all_url=
get_all_url(sousuoyeshu,sousuoneirong)
for url in all_url:
spider_xiangqing_url(url)
Visual Unit 簡明教程
visual unit,簡稱vu,是新一代單元測試工具,功能強大,使用簡單,完全視覺化,不需編寫測試 vu的測試結果使程式行為一目了然,有助於整理程式設計思路,提高程式設計效率和正確性,並能快速排錯 vu還增強偵錯程式功能 如自由後退 用例切換 提高除錯的效率 vu能達到空前的測試完整性,輕鬆完成語...
MYSQL簡明教程
dos進入mysql命令 c mysql h 127.0.0.1 u root p enter password mysql 進入完成 建立資料庫 create database databasename 使用指定資料庫進行操作 方法1 use database databasename 方法2 m...
Struts Hibernate簡明教程
jboss 資助的開源專案,當前比較流行的持久層框架,是一種先進的 jdbc 封裝框架。優點 提高了資料訪問層的開發效率,使我們不必直接呼叫 jdbc 來訪問關係型資料庫。hibernate 建立在物件導向的基礎之上,開發人員只需針對物件進行操作,不必再關心資料庫的連線關閉,sql的執行,以及 re...