代码笔记,仅供参考
利用python爬取安徽省高校名单
因为工作需要,所以我爬取了安徽省高校的名单,并将其保存在csv文件中:
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import requests
from lxml import etree
from fake_useragent import UserAgent
import time
import csv
class SchoolSpider:
def __init__(self):
self.url = ‘http://www.gx211.com/gxmd/gx-ah.html’
def get_ua(self):
return UserAgent().random
def get_page(self):
headers = {‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0)’}
res = requests.get(self.url, headers = headers)
html = res.content.decode(‘utf-8’)
print(‘url:’, res.url)
print(‘code:’, res.status_code)
#print(html)
self.get_school_list(html)
def get_school_list(self, html):
html_parse = etree.HTML(html)
xpath = ‘//table//td[@class=”td1″]/a/text()’
s_list = html_parse.xpath(xpath)
#print(s_list)
self.write_ip(s_list)
def write_ip(self, school_list):
with open(‘./output/my_school_name.csv’, ‘w’, newline = ”, encoding = ‘utf-8’) as f:
writer = csv.writer(f)
writer.writerow([‘school’])
for item in school_list:
writer.writerow([item])
def main(self):
self.get_page()
if __name__ == ‘__main__’:
start = time.time()
spider = SchoolSpider()
spider.main()
end = time.time()
print(‘执行时间:%.2f’ % (end–start))
部分结果:
school
安徽大学
中国技术大学
合肥工业大学
安徽工业大学
安徽理工大学
安徽工程大学
安徽农业大学
安徽医科大学
蚌埠医学院
皖南医学院
安徽中医药大学
安徽师范大学
阜阳师范大学
安庆师范大学
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试