日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

06-代理爬虫实战

發布時間:2024/9/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 06-代理爬虫实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬蟲代理概述

  • 在爬蟲中,所謂的代理指的就是代理服務器
  • 代理服務器的作用就是用來轉發請求和響應
  • 如果我們的爬蟲在短時間內對服務器發起高頻的請求,那么服務器會檢測到這樣的一個異常行為請求,就會將該請求對應設備的ip進行封禁,設備就無法對服務器再次進行請求發送了
  • 使用代理服務器進行信息爬取,可以很好的解決IP限制的問題
    一般模式: 客戶端 ----> 服務器端
    代理模式: 客戶端----> 代理 -----> 服務器端
  • 我們瀏覽信息的時候,先向代理服務器發出請求,然后又代理服務向互聯網獲取信息,再返回給我們
  • 代理服務器分為不同的匿名度
    • 透明代理:如果使用了該形式的代理,服務器端知道你使用了代理機制也知道你真是ip
    • 匿名代理:知道你使用代理,但是不知道你的真實ip
    • 高匿代理:不知道你使用代理,也不知道你真實ip
  • 代理的類型:
    • https: 代理只能轉發https協議的請求
    • http:轉發http的請求
  • 購買代理服務器:
    • 快代理
    • 西祠代理
    • goubanjia
    • 代理精靈(推薦):http://http.zhiliandaili.cn


# -*- coding: utf-8 -*- import requests from lxml import etree import randomheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭# 封裝代理池提取代理api鏈接里面的代理ip端口 url = "http://t.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=5&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15" page_text =requests.get(url,headers=headers).text tree =etree.HTML(page_text) proxy_list = tree.xpath('//body//text()') http_proxy = []#代理池 for proxy in proxy_list:dic = {"https":proxy} #封裝成一個 http/https : 代理ip 的字典http_proxy.append(dic) #把結果追加到16行定義的代理池列表中 print(http_proxy)


# -*- coding: utf-8 -*- import requests from lxml import etree import randomheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭# 封裝代理池提取代理api鏈接里面的代理ip端口 url = "http://ip.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=10&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15" page_text =requests.get(url,headers=headers).text tree =etree.HTML(page_text) proxy_list = tree.xpath('//body//text()') http_proxy = []#代理池 for proxy in proxy_list:dic = {"https":proxy} #封裝成一個 http/https : 代理ip 的字典http_proxy.append(dic) #把結果追加到16行定義的代理池列表中 print(http_proxy) url2 = "https://weixin.sogou.com/weixin?query=風景&page=%d"+"&ie=utf8" ##定義通用翻頁url for pg in range(1,100):new_url = format(url2%pg) ##定義通用翻頁urlprint(new_url)html2 = requests.get(url=new_url,headers=headers,proxies=random.choice(http_proxy)).texttree2 = etree.HTML(html2)title = tree2.xpath("//div[@class='txt-box']/h3/a//text()")print(title)nr = tree2.xpath("//div[@class='txt-box']/p//text()")print(nr)

使用代理爬取搜狗商品

# -*- coding: utf-8 -*- import requests from lxml import etree import randomheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿瀏覽器UA頭 #封裝代理池提取代理api鏈接里面的代理ip端口 url = "http://t.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=200&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=15" page_text =requests.get(url,headers=headers).text tree =etree.HTML(page_text) proxy_list = tree.xpath('//body//text()') http_proxy = []#代理池 for proxy in proxy_list:dic = {"https":proxy} #封裝成一個 http/https : 代理ip 的字典http_proxy.append(dic) #把結果追加到定義的代理池列表中 print(http_proxy)url2 = "https://gouwu.sogou.com/shop?ie=utf8&query=2020&p=40251501&sourceid=sr_bpage&page=%d" ##定義通用翻頁url for pg in range(1,100):new_url = format(url2%pg) ##定義通用翻頁urlprint(new_url)html2 = requests.get(url=new_url,headers=headers,proxies=random.choice(http_proxy)).text#攜帶代理池tree2 = etree.HTML(html2)title = tree2.xpath('//h4/a//text()')for title1 in title:print(title1)

總結

以上是生活随笔為你收集整理的06-代理爬虫实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。