使用Python3.x抓取58同城(南京站)的演出票的信息
- #!/usr/bin/env python
- #-*-coding: utf-8 -*-
- import re
- import urllib.request as request
- from bs4 import BeautifulSoup as bs
- import csv
- import os
- import sys
- from imp import reload
- reload(sys)
- def GetAllLink():
- num = int(input("爬取多少页:>"))
- if not os.path.exists('./data/'):
- os.mkdir('./data/')
- for i in range(num):
- if i+1 == 1:
- url = 'http://nj.58.com/piao/'
- GetPage(url, i)
- else:
- url = 'http://nj.58.com/piao/pn%s/' %(i+1)
- GetPage(url, i)
- def GetPage(url, num):
- Url = url
- user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0'
- headers = { 'User-Agent' : user_agent }
- req = request.Request(Url, headers = headers)
- page = request.urlopen(req).read().decode('utf-8')
- soup = bs(page, "html.parser")
- table = soup.table
- tag = table.find_all('tr')
- # 提取出所需的那段
- soup2 = bs(str(tag), "html.parser")
- title = soup2.find_all('a','t') #标题与url
- price = soup2.find_all('b', 'pri') #价格
- fixedprice = soup2.find_all('del') #原价
- date = soup2.find_all('span','pr25') #时间
- atitle = []
- ahref = []
- aprice = []
- afixedprice = []
- adate = []
- for i in title:
- #print i.get_text(), i.get('href')
- atitle.append(i.get_text())
- ahref.append(i.get('href'))
- for i in price:
- #print i.get_text()
- aprice.append(i.get_text())
- for i in fixedprice:
- #print j.get_text()
- afixedprice.append(i.get_text())
- for i in date:
- #print i.get_text()
- adate.append(i.get_text())
- csvfile = open('./data/ticket_%s.csv'%num, 'w')
- writer = csv.writer(csvfile)
- writer.writerow(['标题','url','售价','原价','演出时间'])
- '''
- 每个字段必有title,但是不一定有时间date
- 如果没有date日期,我们就设为'---'
- '''
- if len(atitle) > len(adate):
- for i in range(len(atitle) - len(adate)):
- adate.append('---')
- for i in range(len(atitle) - len(afixedprice)):
- afixedprice.append('---')
- for i in range(len(atitle) - len(aprice)):
- aprice.append('---')
- for i in range(len(atitle)):
- message = atitle[i]+'|'+ahref[i]+'|'+aprice[i]+ '|'+afixedprice[i]+'|'+ adate[i]
- writer.writerow([i for i in str(message).split('|')])
- print ("[Result]:> 页面 %s 信息保存完毕!"%(num+1))
- csvfile.close()
- if __name__ == '__main__':
- GetAllLink()
使用Python3.x抓取58同城(南京站)的演出票的信息的更多相关文章
- python3爬虫-爬取58同城上所有城市的租房信息
from fake_useragent import UserAgent from lxml import etree import requests, os import time, re, dat ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- 使用python抓取58手机维修信息
之前在ququ的博客上看到说 python 中的BeautifulSoup 挺好玩的,今天下午果断下载下来,看了下api,挺好用的,完了2把,不错. 晚上写了一个使用python抓取58手机维修信息的 ...
- 利用python爬取58同城简历数据
利用python爬取58同城简历数据 利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用pyth ...
- 笔趣看小说Python3爬虫抓取
笔趣看小说Python3爬虫抓取 获取HTML信息 解析HTML信息 整合代码 获取HTML信息 # -*- coding:UTF-8 -*- import requests if __name__ ...
- scrapy爬取58同城二手房问题与对策
测试环境: win10,单机爬取,scrapy1.5.0,python3.6.4,mongodb,Robo 3T 其他准备: 代理池:测试环境就没有用搭建的flask抓代理,因为我找到的几个免费网站有 ...
- Python开发网络爬虫抓取某同城房价信息
前言: 苦逼的我从某某城市换到另一个稍微大点的某某城市,面临的第一个问题就是买房,奋斗10多年,又回到起点,废话就不多说了,看看如何设计程序把某同城上的房价数据抓取过来. 方案:方案思路很简单,先把网 ...
- 养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)
先上一个源代码吧. https://github.com/answershuto/Rental 欢迎指导交流. 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启 ...
- python3.4+pyspider爬58同城(二)
之前使用python3.4+selenium实现了爬58同城的详细信息,这次用pyspider实现,网上搜了下,目前比较流行的爬虫框架就是pyspider和scrapy,但是scrapy不支持pyth ...
随机推荐
- web前端安全的三个关键点
一.浏览器的同源策略 同源策略:不同域的客户端脚本在未经授权的情况下不能读写对方的资源. 这里有几个关键词:域.脚本.授权.读写.资源 1.同域要求两个站点:同协议.同域名.同端口.下表展示了所列站点 ...
- Nginx反向代理时tomcat日志获取真实IP
对于nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP.因此,需要对nginx.tomcat做如 ...
- ubuntu14.04后安装win10记录
1首先修改启动引导顺序,从U盘启动, 2自动安装,产生一个问题,gpt分区无法安装,解决方法,感谢https://jingyan.baidu.com/article/08b6a591c82df414a ...
- google image
google图片抓取 google图片是base64加密的,而且base64后的信息放在script信息里面 import pymysql from lxml import etree import ...
- InfluxDB时序数据库应用场景
目前了解到的InfluxDB时序数据库应用场景:如在数据库中有很多条记录,有的记录包含了时间字段time和数值字段water_level,有的只有时间字段time SELECT MAX("w ...
- 清除 idea 缓存
idea最好选择 付费版本 ,稳定一点~ 不要选择社区版 1.问题使用idea启动项目时,报如下错误:Intellij Error: Internal caches are corrupted or ...
- windows的cmd下面格式化某个盘符
1.crl+R 输入cmd回车. 2.如果要格式化的是E盘,哪直接输入 在DOS窗口中输入“format f: “ ,其中:format 为格式化命令,f: 为需要格式化的分区
- User-Defined Components Must Be Capitalized
[User-Defined Components Must Be Capitalized] When an element type starts with a lowercase letter, i ...
- spring boot IDEA 开发微服务
本文是参考:https://blog.csdn.net/u011001084/article/details/79040701 的基础上自己实际操作编写. 在我们开始创建微服务之前,需要安装Cons ...
- jenkin 不必要的Execute shell执行失败,导致jenkins都失败的解决
问题:jenkins里配置了多个执行shell,且有后续的执行job任务.但其中一个Execute shell执行失败了导致后续的shell都不执行了 而这个失败的shell并不是一定要执行 解决 ...