志在指尖
用双手敲打未来

python爬虫(python爬虫代码示例)

python爬虫

Python是闻名的“龟叔”GuidovanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程言语。
创始人GuidovanRossum是BBC出品英剧MontyPython’sFlyingCircus(中文:蒙提·派森的飞翔马戏团)的狂热粉丝,因此将自己创造的这门编程言语命名为Python。
人生苦短,我用python,翻译自”Lifeisshort,youneedPython”
Python英式发音:/?pa?θ?n/,中文相似‘拍森’。而美式发音:/?pa?θɑ?n/,中文相似‘拍赏’。我看麻省理工授课教授读的是‘拍赏’,我觉得国内大多是读‘拍森’吧。
2017年python排榜首也无可争议,比较AI榜首言语,在当下人工智能大数据大火的情况下,python无愧榜首言语的称谓,至于C、C++、java都是万年的老大哥了,在代码量比较方面,小编信任java肯定是完爆其它言语的。
不过从这一年的编程言语盛行趋势看,java依然是传达最多的,比较无论app、web、云计算都离不开,而其相对python而言,学习路径更困难一点,想要转行编程,并且追逐潮流,python已然是最佳言语。
许多大型网站便是用Python开发的,国内:豆瓣、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、热酷、马铃薯、新浪、果壳…;国外:谷歌、NASA、YouTube、Facebook、工业光魔、红帽…
Python将被归入高考内容
浙江省信息技术课程改革方案已经出台,Python确认进入浙江省信息技术高考,从2018年起浙江省信息技术教材编程言语将会从vb更换为Python。其实不止浙江,教育大省北京和山东也确认要把Python编程根底归入信息技术课程和高考的内容系统,Python言语课程化也将成为孩子学习的一种趋势。尤其山东省最新出书的小学信息技术六年级教材也加入了Python内容,小学生都开始接触Python言语了!!python

python爬虫代码示例

这里有两个爬虫的实例,是刚开始学python用的,一个是爬取京东茅台酒谈论的,另一个是爬取新浪网国内新闻的,两个都是网上的教程里边的,代码稍微有些不同,供参考学习。
都可以在andconda里跑
importrequestsfrombs4importBeautifulSoupfromdatetimeimportdatetimeimportreimportjsonimportpandas
news_total=[]
commentURL=’http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=gn&newsid=comos-{}&group=&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=20’url=’http://api.roll.news.sina.com.cn/zt_list?channel=news&cat_1=gnxw&cat_2==gdxw1||=gatxw||=zs-pl||=mtjj&level==1||=2&show_ext=1&show_all=1&show_num=22&tag=1&format=json&page={}&callback=newsloadercallback&_=1509373193047’defparseListLinks(url):
newsdetails=[]
res=requests.get(url)
jd=json.loads(res.text.strip().lstrip(‘newsloadercallback(‘).rstrip(‘);’))forentinjd[‘result’][‘data’]:
newsdetails.append(getNewsDetail(ent[‘url’]))returnnewsdetailsdefgetNewsDetail(newsurl):
result={}
res=requests.get(newsurl)
res.encoding=’utf-8’soup=BeautifulSoup(res.text,’html.parser’)
result[‘title’]=soup.select(‘#artibodyTitle’)[0].text
result[‘newssource’]=soup.select(‘.time-sourcespana’)[0].text
timesource=soup.select(‘.time-source’)[0].contents[0].strip()
dt1=datetime.strptime(timesource,’%Y年%m月%d日%H:%M’)
result[‘dt’]=dt1.strftime(‘%Y-%m-%d-%H:%M’)
result[‘article’]=”.join([p.text.strip()forpinsoup.select(‘#artibodyp’)[:-1]])
result[‘editor’]=soup.select(‘.article-editor’)[0].text.strip(‘责任编辑:’)
result[‘comments’]=getCommentCounts(newsurl)print(‘取得一条新闻’)returnresultdefgetCommentCounts(newsurl):
m=re.search(‘doc-i(.+).shtml’,newsurl)
newsid=m.group(1)
comments=requests.get(commentURL.format(newsid))
jd=json.loads(comments.text.strip(‘vardata=’))returnjd[‘result’][‘count’][‘total’]foriinrange(1,8):print(‘正在爬取第’+str(i)+’页……’)
newsurl=url.format(i)
newsary=parseListLinks(newsurl)
news_total.extend(newsary)print(‘抓取完毕’)
df=pandas.DataFrame(news_total)
df.to_excel(‘news.xlsx’)
仿制代码
仿制代码
importrequestsimportreimportjsonimporttimeimportxlwt#
#
#配置表格#不需要明白是干啥的#有下面4行代码就可以往表格写中文了#style=xlwt.XFStyle()
font=xlwt.Font()
font.name=’SimSun’style.font=font#创建一个表格w=xlwt.Workbook(encoding=’utf-8′)#添加个sheetws=w.add_sheet(‘sheet1′,cell_overwrite_ok=True)#当时写入表格到第row行row=1#
#写入表格头#ws.write(0,0,’content’)
ws.write(0,1,’userClientShow’)
ws.write(0,2,’creationTime’)
ws.write(0,3,’userLevelName’)
ws.write(0,4,’productColor’)
ws.write(0,5,’userLevelId’)
ws.write(0,6,’score’)
ws.write(0,7,’referenceName’)
ws.write(0,8,’referenceTime’)
ws.write(0,9,’isMobile’)
ws.write(0,10,’nickname’)#
#接受一个json对象#将内容写进表格#一次一页谈论#defwrite_json_to_xls(dat):globalrowforcommentindat[‘comments’]:
ws.write(row,0,comment[‘content’])
ws.write(row,1,comment[‘userClientShow’])
ws.write(row,2,comment[‘creationTime’])
ws.write(row,3,comment[‘userLevelName’])
ws.write(row,4,comment[‘productColor’])
ws.write(row,5,comment[‘userLevelId’])
ws.write(row,6,comment[‘score’])
ws.write(row,7,comment[‘referenceName’])
ws.write(row,8,comment[‘referenceTime’])
ws.write(row,9,comment[‘isMobile’])
ws.write(row,10,comment[‘nickname’])
row+=1#
#
#循环获取数据#
#foriinrange(1,10+1):
url=’https://club.jd.com/comment/productPageComments.action?productId=1475512465&score=0&sortType=5&page=%d&pageSize=100&isShadowSku=0&fold=’%itry:
json_req=requests.get(url)
dat=json_req.json()
write_json_to_xls(dat)print(u’写入一页数据’)exceptExceptionase:print(u’获取数据失败数据’,e)
time.sleep(0.5)#将数据存进表格w.save(‘result.xls’)

未经允许不得转载:IT技术网站 » python爬虫(python爬虫代码示例)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载