在爬66ip代理的时候,发现一直返回的是521,在CSDN看了很多大神的解决方法,感觉很厉害(膜拜一下),也挺麻烦的,我自己试了selenium就成功了,而且也挺快的,简单代码如下:
# 设置无界面
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
url ='http://www.66ip.cn/1.html'
driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
time.sleep(2)
tr_list = driver.find_elements_by_xpath('//div[@class="containerbox boxindex"]/div/table/tbody/tr') # 这里的tbody不用省略...
for tr in tr_list[1:]:
ip = tr.find_element_by_xpath('./td[1]').text
port = tr.find_element_by_xpath('./td[2]').text
proxy = "http://" + ip + ":" + port
print(proxy)
注意的是,这里的tbody也是一个坑,之前爬取遇到tbody都会省略,在这里却是不用的,花了我些时间发现了这个问题,果然经验还是太少了…