本文主要是介绍python3 爬取上海预付卡备案企业信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一直想学习python,然后用python做一些有趣的例子分享,可惜之前意志力不坚定,没有效的控制自己的惰性,在18年的最后一个星期里决定写下这第一篇的初稿,爬取上海的预付卡备案企业信息。
决定爬取这个信息,是刚好上周在微信上看到推送的信息,还给了原始信息的链接,所以决定拿来练手。
初步分析,见上图,很明显这特别像个表格,所以我认为应该会简单点。然后点击F12,看下后台的编码。见下图。基本上有效信息都在这个tbody里面,而且可以很容易识别出来。看到上面有个 <div id="ivs_content"> ,就 可以利用 BeautifulSoup 来处理了。下面直接贴上代码吧。
#获取上海预付卡备案企业名单 #__author__ = 'fxsxj' #coding:utf-8import chardet from urllib import request import bs4 import xlwt import xlrd import xlutilsurl='http://www.scofcom.gov.cn/zxxxgk/233571.htm' response=request.urlopen(url) page=response.read() #查看字符编码方式 #charset=chardet.detect(page) #print(charset)#写excel book=xlwt.Workbook() sheet=book.add_sheet('sheet1')page=(page.decode('gbk')) #bs=bs4.BeautifulSoup(page,'lxml') bs=bs4.BeautifulSoup(page,'html.parser') #print(bs.title.string) menu=bs.find_all(id="ivs_content") # 在soup中找到id为mulu的节点 #print(menu) data_page=bs.find_all("tr")for i in range(0,len(data_page)):list = data_page[i].find_all("td")#print(list)for j in range(0,len(list)):#print(list[j].get_text())sheet.write(i, j, list[j].get_text())book.save('上海预付卡备案企业名单.xls') #只能用.xls结尾
这篇关于python3 爬取上海预付卡备案企业信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!