导航:首页 > 数据处理 > python如何爬取交通数据

python如何爬取交通数据

发布时间:2024-10-05 09:15:56

⑴ 濡备綍鐢╬ython鐖鍙栫绣绔欐暟鎹

鐢╬ython鐖鍙栫绣绔欐暟鎹鏂规硶姝ラゅ备笅锛

1.棣栧厛瑕佹槑纭𨱍宠佺埇鍙栫殑鐩镙囥傚逛簬缃戦〉婧愪俊鎭镄勭埇鍙栭栧厛瑕佽幏鍙杣rl,铹跺悗瀹氢綅镄勭洰镙囧唴瀹广

2.鍏堜娇鐢ㄥ熀纭for寰鐜鐢熸垚镄剈rl淇℃伅銆

3.铹跺悗闇瑕佹ā𨰾熸祻瑙埚櫒镄勮锋眰(浣跨敤request.get(url)),銮峰彇鐩镙囩绣椤电殑婧愪唬镰佷俊鎭(req.text)銆

4.鐩镙囦俊鎭灏卞湪婧愪唬镰佷腑,涓轰简绠鍗旷殑銮峰彇鐩镙囦俊鎭闇瑕佺敤Beautifulsoup搴揿规簮浠g爜杩涜岃В鏋愶纴锲犱负鏄痟tml淇℃伅锛岄噰鐢╤tml.parser镄勬柟寮忚繘琛岃В鏋愩

5.闅忓悗瑕佸湪婧愮绣椤典腑杩涗竴姝ュ畾浣岖洰镙囦俊鎭鍦ㄧ绣椤垫簮浠g爜涓镄勪綅缃锛氩湪缃戦〉涓璅12阌锛屾煡鐪嫔厓绱犱俊鎭锛屼娇鐢ㄥ乏涓婅掔殑鎸夐挳杩涗竴姝ユ煡鐪嬬洰镙囦俊鎭浣岖疆銆

6.浣跨敤beautifululsoup杩涗竴姝ュ畾浣嶆簮浠g爜淇℃伅銆

7.链钖庝娇鐢ㄥ惊鐜鍙栧嚭鍗曚釜鍏幂礌淇℃伅銆傞栧厛鍒嗘瀽鍗曚釜淇℃伅镄勪綅缃锛氩畠鍦╱l鍒楄〃涓嬶纴浣跨敤寰鐜鍙栧嚭铹跺悗瀹氢綅鍗曚釜鍏幂礌涓淇℃伅镄勪綅缃锛屽苟鍙栧嚭淇℃伅銆

8.链缁埚氨寰楀埌鐩镙囦俊鎭鍒楄〃浜嗐

⑵ python可以爬取什么数据

一、爬取我们所需要的一线链接
channel_extract.py
这里的一线链接也就是我们所说的大类链接:
from bs4 import BeautifulSoupimport requests

start_url = 'http://lz.ganji.com/wu/'host_url = 'http://lz.ganji.com/'def get_channel_urls(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml')
links = soup.select('.fenlei > dt > a') #print(links)
for link in links:
page_url = host_url + link.get('href')
print(page_url)#get_channel_urls(start_url)channel_urls = '''
http://lz.ganji.com/jiaju/
http://lz.ganji.com/rironghuo/
http://lz.ganji.com/shouji/
http://lz.ganji.com/bangong/
http://lz.ganji.com/nongyongpin/
http://lz.ganji.com/jiadian/
http://lz.ganji.com/ershoubijibendiannao/
http://lz.ganji.com/ruanjiantushu/
http://lz.ganji.com/yingyouyunfu/尺毁渗
http://lz.ganji.com/diannao/
http://lz.ganji.com/xianlipin/
http://lz.ganji.com/fushixiaobaxuemao/
http://lz.ganji.com/meironghuazhuang/
http://lz.ganji.com/shuma/
http://lz.ganji.com/laonianyongpin/
http://lz.ganji.com/xuniwupin/
'''

那么拿我爬取的58同城为例就是余举爬取了二手市场所有品类的链接,也就是我说的大类链接;
找到这些链接的共同特征,用函数将其输出,并作为多行文本储存起来。
二、获取陵脊我们所需要的详情页面的链接和详情信息
page_parsing.py
1、说说我们的数据库
先看代码:
#引入库文件from bs4 import BeautifulSoupimport requestsimport pymongo #python操作MongoDB的库import reimport time#链接和建立数据库client = pymongo.MongoClient('localhost', 27017)
ceshi = client['ceshi'] #建ceshi数据库ganji_url_list = ceshi['ganji_url_list'] #建立表文件ganji_url_info = ceshi['ganji_url_info']123456789101112

2、判断页面结构是否和我们想要的页面结构相匹配,比如有时候会有404页面;
3、从页面中提取我们想要的链接,也就是每个详情页面的链接;
这里我们要说的是一个方法就是:
item_link = link.get('href').split('?')[0]12

这里的这个link什么类型的,这个get方法又是什么鬼?
后来我发现了这个类型是
<class 'bs4.element.Tab>1

如果我们想要单独获取某个属性,可以这样,例如我们获取它的 class 叫什么
print soup.p['class']
#['title']12

还可以这样,利用get方法,传入属性的名称,二者是等价的
print soup.p.get('class')#['title']12

下面我来贴上代码:
#爬取所有商品的详情页面链接:def get_type_links(channel, num):
list_view = '{0}o{1}/'.format(channel, str(num)) #print(list_view)
wb_data = requests.get(list_view)
soup = BeautifulSoup(wb_data.text, 'lxml')
linkOn = soup.select('.pageBox') #判断是否为我们所需页面的标志;
#如果爬下来的select链接为这样:div.pageBox > ul > li:nth-child(1) > a > span 这里的:nth-child(1)要删掉
#print(linkOn)
if linkOn:
link = soup.select('.zz > .zz-til > a')
link_2 = soup.select('.js-item > a')
link = link + link_2 #print(len(link))
for linkc in link:
linkc = linkc.get('href')
ganji_url_list.insert_one({'url': linkc})
print(linkc) else:

4、爬取详情页中我们所需要的信息
我来贴一段代码:
#爬取赶集网详情页链接:def get_url_info_ganji(url):
time.sleep(1)
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml') try:
title = soup.select('head > title')[0].text
timec = soup.select('.pr-5')[0].text.strip()
type = soup.select('.det-infor > li > span > a')[0].text
price = soup.select('.det-infor > li > i')[0].text
place = soup.select('.det-infor > li > a')[1:]
placeb = [] for placec in place:
placeb.append(placec.text)
tag = soup.select('.second-dt-bewrite > ul > li')[0].text
tag = ''.join(tag.split()) #print(time.split())
data = { 'url' : url, 'title' : title, 'time' : timec.split(), 'type' : type, 'price' : price, 'place' : placeb, 'new' : tag
}
ganji_url_info.insert_one(data) #向数据库中插入一条数据;
print(data) except IndexError: 21222324252627282930

四、我们的主函数怎么写?
main.py
看代码:
#先从别的文件中引入函数和数据:from multiprocessing import Poolfrom page_parsing import get_type_links,get_url_info_ganji,ganji_url_listfrom channel_extract import channel_urls#爬取所有链接的函数:def get_all_links_from(channel):
for i in range(1,100):
get_type_links(channel,i)#后执行这个函数用来爬取所有详情页的文件:if __name__ == '__main__':# pool = Pool()# # pool = Pool()# pool.map(get_url_info_ganji, [url['url'] for url in ganji_url_list.find()])# pool.close()# pool.join()#先执行下面的这个函数,用来爬取所有的链接:if __name__ == '__main__':
pool = Pool()
pool = Pool()
pool.map(get_all_links_from,channel_urls.split())
pool.close()
pool.join()

五、计数程序
count.py
用来显示爬取数据的数目;
import timefrom page_parsing import ganji_url_list,ganji_url_infowhile True: # print(ganji_url_list.find().count())
# time.sleep(5)
print(ganji_url_info.find().count())
time.sleep(5)

⑶ python网络爬虫可以干啥

《Python3爬虫入门到精通课程视频【附软件与资料】【34课时】--崔庆才》网络网盘资源免费下载

链接:https://pan..com/s/1PM2MA-3Ba03Lcs2N_Xa1Rw

?pwd=zxcv 提取码:zxcv

Python3爬虫入门到精通课程视频【附软件与资料】【34课时】--崔庆才|章节5: 分布式篇|章节4: 框架篇|章节3: 实战篇|章节2: 基础篇|章节1: 环境配置|Python3爬虫课程资料代码.zip|2018-Python3网络爬虫开发实战-崔庆才.pdf|课时06:Python爬虫常用库的安装.zip|课时05:Python多版本共存配置.zip|课时04:MySQL的安装.zip|课时03:Redis环境配置.zip|课时02:MongoDB环境配置.zip|课时01:Python3+Pip环境配置.zip|课时13:Selenium详解.zip

⑷ 如何用Python爬取数据

方法/步骤

⑸ python怎么爬取数据


在学习python的过程中,学会获取网站的内容是我们必须要掌握的知识和技能,今天就分享一下爬虫的基本流程,只有了解了过程,我们再慢慢一步步的去掌握它所包含的知识
Python网络爬虫大概需要以下几个步骤:
一、获取网站的地址
有些网站的网址十分的好获取,显而易见,但是有些网址需要我们在浏览器中经过分析得出
二、获取网站的地址
有些网站的网址十分的好获取,显而易见,但是有些网址需要我们在浏览器中经过分析得出
三、请求 url
主要是为了获取我们所需求的网址的源码,便于我们获取数据
四、获取响应
获取响应是十分重要的, 我们只有获取了响应才可以对网站的内容进行提取,必要的时候我们需要通过登录网址来获取cookie 来进行模拟登录操作
五、获取源码中的指定的数据
这就是我们所说的需求的数据内容,一个网址里面的内容多且杂,我们需要将我们需要的信息获取到,我目前主要用到的方法有3个分别是re(正则表达式) xpath 和 bs.4
六、处理数据和使数据美化
当我们将数据获取到了,有些数据会十分的杂乱,有许多必须要的空格和一些标签等,这时我们要将数据中的不需要的东西给去掉
七、保存
最后一步就是将我们所获取的数据进行保存,以便我们进行随时的查阅,一般有文件夹,文本文档,数据库,表格等方式

阅读全文

与python如何爬取交通数据相关的资料

热点内容
238厂做什么产品 浏览:301
富士康带电子产品进去怎么办 浏览:764
淘宝怎么搭配两种产品 浏览:789
交易纪律讲什么 浏览:855
技术文件目录索引怎么做 浏览:916
excel求和怎么设置数据不四舍五入 浏览:88
大创产品服务特色怎么写 浏览:625
冒险岛抵用交易扣多少 浏览:43
婴儿外出驱蚊什么产品好 浏览:653
理财产品功能有哪些 浏览:916
如何注册币圈交易网 浏览:281
哪里能学到真正的数据 浏览:961
如何打开lpc程序 浏览:601
印尼有哪些值得购买的产品 浏览:271
温州海鲜有哪些批发市场 浏览:517
酒庄有哪些产品或服务 浏览:779
新产品啤酒代理需要多少钱 浏览:756
微商代理怎么宣传 浏览:73
两列数据如何显示出来不同项 浏览:177
放大镜爆料小程序入口在哪里 浏览:795