1. 程式人生 > >python爬蟲筆記-day1

python爬蟲筆記-day1

判斷請求否是成功


assert response.status_code==200

url編碼

https://×××w.baidu.com/s?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2

字串格式化的另一種方式

"傳{}智播客".format(1)

使用代理ip
準備一堆的ip地址,組成ip池,隨機選擇一個ip來時用
如何隨機選擇代理ip,讓使用次數較少的ip地址有更大的可能性被用到

{"ip":ip,"times":0}
[{},{},{},{},{}],對這個ip的列表進行排序,按照使用次數進行排序
選擇使用次數較少的10個ip,從中隨機選擇一個

檢查ip的可用性

可以使用requests新增超時引數,判斷ip地址的質量
線上代理ip質量檢測的網站

攜帶cookie請求
攜帶一堆cookie進行請求,把cookie組成cookie池

使用requests提供的session類來請求登陸之後的網站的思路
例項化session
先使用session傳送請求,登入對網站,把cookie儲存在session中
再使用session請求登陸之後才能訪問的網站,session能夠自動的攜帶登入成功時儲存在其中的cookie,進行請求

不傳送post請求,使用cookie獲取登入後的頁面
cookie過期時間很長的網站
在cookie過期之前能夠拿到所有的資料,比較麻煩
配合其他程式一起使用,其他程式專門獲取cookie,當前程式專門請求頁面

字典推導式,列表推到是

cookies="anonymid=j3jxk555-nrn0wh; _r01_=1; _ga=GA1.2.1274811859.1497951251; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; [email protected]; depovince=BJ; jebecookies=54f5d0fd-9299-4bb4-801c-eefa4fd3012b|||||; JSESSIONID=abcI6TfWH4N4t_aWJnvdw; ick_login=4be198ce-1f9c-4eab-971d-48abfda70a50; p=0cbee3304bce1ede82a56e901916d0949; first_login_flag=1; ln_hurl=http://hdn.xnimg.cn/photos/hdn421/20171230/1635/main_JQzq_ae7b0000a8791986.jpg; t=79bdd322e760beae79c0b511b8c92a6b9; societyguester=79bdd322e760beae79c0b511b8c92a6b9; id=327550029; xnsid=2ac9a5d8; loginfrom=syshome; ch_id=10016; wp_fold=0"
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}

[self.url_temp.format(i * 50) for i in range(1000)]

獲取登入後的頁面的三種方式
例項化session,使用session傳送post請求,在使用他獲取登陸後的頁面
headers中新增cookie鍵,值為cookie字串
在請求方法中新增cookies引數,接收字典形式的cookie。字典形式的cookie中的鍵是cookie的name對應的值,值是cookie的value對應的值