热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Python3.x抓取58同城(南京站)的演出票的信息

1#!usrbinenvpython2#-*-coding:utf-8-*-3importre4importurllib.requestasrequest5f

 

 1 #!/usr/bin/env python
2 #-*-coding: utf-8 -*-
3 import re
4 import urllib.request as request
5 from bs4 import BeautifulSoup as bs
6 import csv
7 import os
8 import sys
9 from imp import reload
10 reload(sys)
11
12 def GetAllLink():
13 num = int(input("爬取多少页:>"))
14 if not os.path.exists('./data/'):
15 os.mkdir('./data/')
16
17 for i in range(num):
18 if i+1 == 1:
19 url = 'http://nj.58.com/piao/'
20 GetPage(url, i)
21 else:
22 url = 'http://nj.58.com/piao/pn%s/' %(i+1)
23 GetPage(url, i)
24
25
26 def GetPage(url, num):
27 Url = url
28 user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0'
29 headers = { 'User-Agent' : user_agent }
30 req = request.Request(Url, headers = headers)
31 page = request.urlopen(req).read().decode('utf-8')
32 soup = bs(page, "html.parser")
33 table = soup.table
34 tag = table.find_all('tr')
35 # 提取出所需的那段
36 soup2 = bs(str(tag), "html.parser")
37 title = soup2.find_all('a','t') #标题与url
38 price = soup2.find_all('b', 'pri') #价格
39 fixedprice = soup2.find_all('del') #原价
40 date = soup2.find_all('span','pr25') #时间
41
42 atitle = []
43 ahref = []
44 aprice = []
45 afixedprice = []
46 adate = []
47
48 for i in title:
49 #print i.get_text(), i.get('href')
50 atitle.append(i.get_text())
51 ahref.append(i.get('href'))
52 for i in price:
53 #print i.get_text()
54 aprice.append(i.get_text())
55 for i in fixedprice:
56 #print j.get_text()
57 afixedprice.append(i.get_text())
58 for i in date:
59 #print i.get_text()
60 adate.append(i.get_text())
61
62 csvfile = open('./data/ticket_%s.csv'%num, 'w')
63 writer = csv.writer(csvfile)
64 writer.writerow(['标题','url','售价','原价','演出时间'])
65 '''
66 每个字段必有title,但是不一定有时间date
67 如果没有date日期,我们就设为'---'
68 '''
69 if len(atitle) > len(adate):
70 for i in range(len(atitle) - len(adate)):
71 adate.append('---')
72 for i in range(len(atitle) - len(afixedprice)):
73 afixedprice.append('---')
74 for i in range(len(atitle) - len(aprice)):
75 aprice.append('---')
76
77 for i in range(len(atitle)):
78 message = atitle[i]+'|'+ahref[i]+'|'+aprice[i]+ '|'+afixedprice[i]+'|'+ adate[i]
79 writer.writerow([i for i in str(message).split('|')])
80 print ("[Result]:> 页面 %s 信息保存完毕!"%(num+1))
81 csvfile.close()
82
83
84 if __name__ == '__main__':
85 GetAllLink()

参考地址


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • python教程分享Python获取时光网电影数据的实例代码
    一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r ... [详细]
  • 解决python matplotlib画水平直线的问题
    本文介绍了在使用python的matplotlib库画水平直线时可能遇到的问题,并提供了解决方法。通过导入numpy和matplotlib.pyplot模块,设置绘图对象的宽度和高度,以及使用plot函数绘制水平直线,可以解决该问题。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • Python3+Appium安装使用教程
    一、安装我们知道selenium是桌面浏览器自动化操作工具(WebBrowserAutomation)appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mo ... [详细]
  • update-alternatives--installusrbinpythonpythonusrbinpython2100update-alternatives--ins ... [详细]
  • python教程分享cvtcolor函数的作用(cvtcolor函数出现未处理异常)
    在这篇文章中,我们将看到如何使用python中的opencv模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pipinstallopencv-pythonpipinsta ... [详细]
  • 写在前面最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试。没想到啊,这坑太深了。。。看了看相关介绍后选择了Scrapy框架,然后兴高采烈的 ... [详细]
  • 准备gitanaconda3Step1:下载安装git这里是windows下git安装:需要注意的是在这里不选择第一个,要选择第二个,在windows下也可以。然后跟着默认选择就可 ... [详细]
  • 这篇文章给大家分享的是有关python3怎样中文转换编码的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。示例:处理 ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
author-avatar
玩心跳2502893007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有