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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第四章 爬取西刺免费代理ip 并应用到scrapy

發(fā)布時(shí)間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章 爬取西刺免费代理ip 并应用到scrapy 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.獲取免費(fèi)代理ip

#!/usr/bin/env python # -*- coding: utf-8 -*- """ @author: liuyc @file: crawl_xici_ip.py @time: 2017/8/21 23:22 @describe: """ import requests from scrapy.selector import Selector from fake_useragent import UserAgent import MySQLdbconn = MySQLdb.connect(host="127.0.0.1", user="root", password="pass", db="scrapy", charset="utf8") cursor = conn.cursor() ua = UserAgent()def crawl_xici_ips():headers = {"User-Agent": "{0}".format(ua.random)}for i in range(1, 3):req = requests.get("http://www.xicidaili.com/nn/{0}".format(i), headers=headers)selector = Selector(text=req.text)trs = selector.css("#ip_list tr")lst_ip = []for tr in trs[1:]:all_text = tr.css("td::text").extract()lst_ip.append({"ip": all_text[0], 'port': all_text[1], 'ip_type': all_text[5]})for ip_info in lst_ip:sql_insert = "INSERT INTO ip_proxy(ip, port, ip_type) VALUES ('{0}','{1}','{2}')".format(ip_info["ip"], ip_info["port"], ip_info["ip_type"])cursor.execute(sql_insert)conn.commit()# crawl_xici_ips()class GetIP(object):def get_random_ip(self):random_sql = "SELECT ip, port FROM ip_proxy ORDER BY RAND() LIMIT 1"cursor.execute(random_sql)for ip_info in cursor.fetchall():ip = ip_info[0]port = ip_info[1]judge_re = self.judge_ip(ip, port)if judge_re:return "http://{0}:{1}".format(ip, port)else:return self.get_random_ip()def del_ip(self, ip):# 從數(shù)據(jù)庫(kù)中刪除無(wú)效ipdel_sql = "DELETE FROM ip_proxy WHERE ip='{0}'".format(ip)try:cursor.execute(del_sql)conn.commit()except Exception as e:print(e)def judge_ip(self, ip, port):baidu_rul = "http://www.baidu.com"proxy_url = "http://{0}:{1}".format(ip, port)proxy_dict = {"http": proxy_url,}try:response = requests.get(baidu_rul, proxies=proxy_dict)except Exception as e:print(e)self.del_ip(ip)print("invalid ip or port")return Falseelse:code = response.status_codeif code >= 200 and code < 300:print("effective ip:{0}".format(ip))return Trueelse:print("invalid ip or port")self.del_ip(ip)return False # # if __name__ == "__main__": # get_ip_obj = GetIP() # get_ip_obj.get_random_ip()
2.在抓取網(wǎng)頁(yè)時(shí)通過(guò)下面的中間件 隨機(jī)更換免費(fèi)代理IP

class RandomProxyMiddleware(object):"""隨機(jī)免費(fèi)代理ip中間件"""def process_request(self, request, spider):print("RandomUserAgentMiddleware".center(20, "*"))get_ip_obj = GetIP()request.meta["proxy"] = get_ip_obj.get_random_ip()


總結(jié)

以上是生活随笔為你收集整理的第四章 爬取西刺免费代理ip 并应用到scrapy的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丝袜在线视频 | 国产美女视频一区二区 | 日皮视频网站 | 又欲又污又肉又黄短文 | 久久中文字幕一区二区 | 高h乱l高辣h文短篇h | 成人在线网址 | 亚洲精品自拍视频 | 久一视频在线观看 | 综合黄色 | 黄色免费在线观看视频 | 亚洲性在线| 亚洲欧美综合精品久久成人 | 亚洲天堂女人 | 亚洲欧美日韩成人 | 日韩在线免费视频观看 | www国产亚洲精品 | 久久精品国产一区二区 | 欧美激情四区 | 精品一区亚洲 | 丰满大乳露双乳呻吟 | www色| 国产一级伦理片 | 女人高潮被爽到呻吟在线观看 | 精品不卡在线 | 夜夜嗨av一区二区三区免费区 | 超碰人人干人人 | 69视频免费看 | 成人一级免费视频 | 少妇高潮伦 | 操日本女人 | 国产精品视频入口 | 亚洲五十路| 欧美裸体视频 | 亚洲精品网站在线观看 | 国产欧美一级 | 奇米精品一区二区三区四区 | 国产精品男女视频 | 国产精品网站免费 | 亚洲精品成人无码熟妇在线 | 国产黄网在线观看 | 国产夫绿帽单男3p精品视频 | 日韩精品视频一区二区 | 欧美日韩电影一区二区三区 | 欧美超逼视频 | 国产午夜手机精彩视频 | 欧美激情一区二区三级高清视频 | 国产人成在线观看 | 人妻无码久久精品人妻 | 精品久久国产 | 欧美激情精品久久 | 午夜国产一级 | 六月丁香在线视频 | 少妇人妻互换不带套 | 一二三不卡视频 | 日韩av免费播放 | 午夜国产在线 | 色老头在线视频 | 亚洲精品一区二三区不卡 | 国产午夜麻豆影院在线观看 | 天堂网av手机版 | 岛国av在线免费观看 | 添女人荫蒂视频 | 欧美一级射 | 亚洲一区二区国产 | 成人小网站| 中文字幕无线码一区 | 免费看黄色aaaaaa 片 | 国产一级理论 | 桃色一区 | 日本羞羞网站 | 久久这里精品 | 国产又粗又大又黄 | 姐姐你真棒插曲快来救救我电影 | 毛片久久久 | 成人tiktok黄短视频 | 国产裸体美女永久免费无遮挡 | 国产精品福利一区二区 | 九九影视理伦片 | 国产午夜精品久久久久久久久久 | 天天人人 | 精品伊人久久 | 久久久6 | jizz在线观看 | 欧美大片a| 日韩在线观看免费网站 | 桃花久久 | 欧美成人第一页 | 99久久久无码国产精品性波多 | 亚洲一区二区三区久久久 | 国产在线精| 无码人妻少妇色欲av一区二区 | 毛片无码免费无码播放 | 国产113页 | 久久精品三级视频 | 亚洲欧美综合视频 | 少妇精品偷拍高潮白浆 | 日韩成人一区二区视频 | 亚洲综合图片网 |