import requests
from selenium import webdriver
import time
class JzSpider:
def __init__(self,):
self.start_url = "http://radar.itjuzi.com//company"
self.headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36",
"Accept":"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Connection": "keep - alive",
"Accept-Encoding":"gzip, deflate, br"}
def parse_url(self,url):
proxies = {"http": "http://117.127.0.204:8080"}
response = requests.get(url, headers=self.headers)
content = response.content.decode("utf-8")
return content
def save_content_list(self,content):
with open("Jz.txt", "w", encoding="utf-8") as f:
f.write(content)
print("保存成功")
def run(self):
driver = webdriver.Chrome()
# 用driver.get()請求這個網址,返回403,是ip被封了?要怎么設置代理ip或者其它解決方法
driver.get("https://www.itjuzi.com/user/login?flag=radar&redirect=/company")
driver.find_element_by_id("create_account_email").send_keys("13333331328")
driver.find_element_by_id("create_account_password").send_keys("lz133333333334")
time.sleep(8)
driver.find_element_by_id("login_btn").click()
html_str = self.parse_url(self.start_url)
self.save_content_list(html_str)
if name == '__main__':
Jz_spider = JzSpider()
Jz_spider.run()403 Forbidden 錯誤,大多是被服務器屏蔽了,拒絕提供返回內容
一般可以通過更換服務器ip、設置代理服務器,去爬取
最好的辦法,是通過模擬瀏覽器人工采集爬取
selenium + xvfb + firefox + proxy ip
下面是我的解決方案,僅供參考,相互學習
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.proxy import *
from pyvirtualdisplay import Display
# from xvfbwrapper import Xvfb
import bs4, os
from base64 import b64encode
import sys
reload(sys)
sys.setdefaultencoding('utf8')
## webdriver + firefox (不使用代理,爬取網頁)
def spider_url_firefox(url):
browser = None
display = None
try:
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox() # 打開 FireFox 瀏覽器
browser.get(url)
content = browser.page_source
print("content: " + str(content))
finally:
if browser: browser.quit()
if display: display.stop()
## webdriver + firefox + proxy + whiteip (無密碼,或白名單ip授權)
## 米撲代理:https://proxy.mimvp.com
def spider_url_firefox_by_whiteip(url):
browser = None
display = None
## 白名單ip,請見米撲代理會員中心: https://proxy.mimvp.com/usercenter/userinfo.php?p=whiteip
mimvp_proxy = {
'ip' : '140.143.62.84', # ip
'port_https' : 19480, # http, https
'port_socks' : 19481, # socks5
'username' : 'mimvp-user',
'password' : 'mimvp-pass'
}
try:
display = Display(visible=0, size=(800, 600))
display.start()
profile = webdriver.FirefoxProfile()
# add proxy
profile.set_preference('network.proxy.type', 1) # ProxyType.MANUAL = 1
if url.startswith("http://"):
profile.set_preference('network.proxy.http', mimvp_proxy['ip'])
profile.set_preference('network.proxy.http_port', mimvp_proxy['port_https']) # 訪問http網站
elif url.startswith("https://"):
profile.set_preference('network.proxy.ssl', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ssl_port', mimvp_proxy['port_https']) # 訪問https網站
else:
profile.set_preference('network.proxy.socks', mimvp_proxy['ip'])
profile.set_preference('network.proxy.socks_port', mimvp_proxy['port_socks'])
profile.set_preference('network.proxy.ftp', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ftp_port', mimvp_proxy['port_https'])
profile.set_preference('network.proxy.no_proxies_on', 'localhost,127.0.0.1')
## 不存在此用法,不能這么設置用戶名密碼 (舍棄)
# profile.set_preference("network.proxy.username", 'mimvp-user')
# profile.set_preference("network.proxy.password", 'mimvp-pass')
profile.update_preferences()
browser = webdriver.Firefox(profile) # 打開 FireFox 瀏覽器
browser.get(url)
content = browser.page_source
print("content: " + str(content))
finally:
if browser: browser.quit()
if display: display.stop()
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數據專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。