python简单爬数据

失败了,即使跟Firefox看到的headers,参数一模一样都不行,爬出来有网页,但是就是不给数据,尝试禁用了js,然后看到了cookie(不禁用js是没有cookie的),用这个cookie爬,还是不行,隔了时间再看,cookie的内容也并没有变化,有点受挫,但还是发出来,也算给自己留个小任务啥的

如果有大佬经过,还望不吝赐教

另外另两个网站的脚本都可以用,过会直接放下代码,过程就不说了



目标网站 http://www.geomag.bgs.ac.uk/data_service/models_compass/igrf_form.shtml

先解决一下date到decimal years的转换,仅考虑到天的粗略转换

def date2dy(year, month, day):
    months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    oneyear = 365
    if year%100 == 0:
        if year%400 == 0:
            months[1] = 29
            oneyear = 366
    else:
        if year%4 == 0:
            months[1] = 29
            oneyear = 366

    days = 0
    i = 1
    while i < month:
        days = days + months[i]
        i = i + 1
    days = days + day - 1
    return year + days/366

第一个小目标是抓下2016.12.1的数据

打开FireFox的F12,调到网络一栏

提交数据得到

有用的信息是请求头,请求网址和参数,扒下来扔到程序里面试试

这块我试了大概一天多,抓不下来,我好菜呀.jpg

放下代码吧先,万一有大佬经过还望不吝赐教

#!usr/bin/python

import requests
import sys

web_url = r‘http://www.geomag.bgs.ac.uk/data_service/models_compass/igrf_form.shtml‘
request_url = r‘http://www.geomag.bgs.ac.uk/cgi-bin/igrfsynth‘
filepath = sys.path[0] + ‘\\data_igrf_raw_‘ + ‘.html‘
fid = open(filepath, ‘w‘, encoding=‘utf-8‘)
headers = {
    ‘Host‘: ‘www.geomag.bgs.ac.uk‘,
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0‘,
    ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘,
    ‘Accept-Language‘: ‘zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3‘,
    ‘Accept-Encoding‘: ‘gzip, deflate‘,
    ‘Content-Type‘: ‘application/x-www-form-urlencoded‘,
    ‘Content-Length‘: ‘136‘,
    ‘Referer‘: ‘http://www.geomag.bgs.ac.uk/data_service/models_compass/igrf_form.shtml‘,
    ‘Connection‘: ‘keep-alive‘,
    ‘Upgrade-Insecure-Requests‘: ‘1‘
}
payload = {
    ‘name‘: ‘-‘,  # your name and email address
    ‘coord‘: ‘1‘,  # ‘1‘: Geodetic ‘2‘: Geocentic
    ‘date‘: ‘2016.92‘,  # decimal years
    ‘alt‘: ‘150‘,  # Altitude
    ‘place‘: ‘‘,
    ‘degmin‘: ‘y‘,  # Position Coordinates: ‘y‘: In Degrees and Minutes ‘n‘: In Decimal Degrees
    ‘latd‘: ‘60‘,  # latitude degrees (degrees negative for south)
    ‘latm‘: ‘0‘,  # latitude minutes
    ‘lond‘: ‘120‘,  # longitude degrees (degrees negative for west)
    ‘lonm‘: ‘0‘,  # longitude minutes
    ‘tot‘: ‘y‘,  # Total Intensity(F)
    ‘dec‘: ‘y‘,  # Declination(D)
    ‘inc‘: ‘y‘,  # Inclination(I)
    ‘hor‘: ‘y‘,  # Horizontal Intensity(H)
    ‘nor‘: ‘y‘,  # North Component (X)
    ‘eas‘: ‘y‘,  # East Component (Y)
    ‘ver‘: ‘y‘,  # Vertical Component (Z)
    ‘map‘: ‘0‘,  # Include a Map of the Location: ‘0‘: NO ‘1‘: YES
    ‘sv‘: ‘n‘
}
#如果需要Secular Variation (rate of change), 加上‘sv‘: ‘y‘
r = requests.post(request_url, data=payload, headers=headers)
fid.write(r.text)
fid.close();
时间: 2024-10-12 17:17:25

python简单爬数据的相关文章

python简单爬数据(这两个成功了)

这两个做的比较早,也比较幸运,成功做出来了,把代码扔在这里 老师叫我从两个网站上弄点数据,数据不多,但是要分月份,小时,经度,纬度,虽然不用排列组合还是挺麻烦的 人生苦短,我用Python 之前就大半年前看了看语法,没有实践过,数据的网页也比较简单,也算是拿来练练手 代码里面已经包含了目标网址,就不具体介绍了,保存下来的是网页,还需要一个脚本来处理一下,这个比较简单也就不放了. 1 #!usr/bin/python import requests import time import sys #

一、python简单爬取静态网页

一.简单爬虫框架 简单爬虫框架由四个部分组成:URL管理器.网页下载器.网页解析器.调度器,还有应用这一部分,应用主要是NLP配合相关业务. 它的基本逻辑是这样的:给定一个要访问的URL,获取这个html及内容(也可以获取head和cookie等其它信息),获取html中的某一类链接,如a标签的href属性.从这些链接中继续访问相应的html页面,然后获取这些html的固定标签的内容,并把这些内容保存下来. 一些前提::所有要爬取的页面,它们的标签格式都是相同的,可以写一个网页解析器去获取相应的

python简单爬去油价信息发送到公众号

基于这段时间广州的油价变化的比较大,所以我自己查看油价的网站也增多了,但是作为一个Programmer来说这不是侮辱吗??能用代码实现的为什么要用人力呢???所以就自己做了一个简单的爬去油价信息的python脚本,后来发现执行脚本还是比较麻烦,就定期每天爬去信息发送到对应的公众号上!话不多说,直接上脚本. (env1) ?  python_scripts cat youjia_wechat.py #!/usr/bin/python #-*- coding:utf-8 -*- #__author_

爬虫篇-使用cookie,user-agent简单爬数据

爬取网页数据有很多方法,我知道的就有: 1.scrapy框架,创建scrapy框架文件夹,在spider文件写上请求函数,文件保存函数等等 2.导入requests模块请求,写上请求函数和保存函数. 方法很多种,今天这章节是做简单的爬取方式了.根据cookie,user-agent请求数据. 1.导入requests模块 import requests 2.可以写一个函数,也可以直接写代码,本人觉得写函数会比较有秩序.def run():    headers = { def run(): he

python 简单爬取图片

现在的网站大多做了反爬处理,找一个能爬的网站还真不容易. 高清的图片很难爬,只能爬一些网站开始录目的小文件图片. 主要要做好隐藏.这里就做一个比较简单的代码试一试 1 import urllib.request 2 import re 3 4 def gethtml(url): 5 page=urllib.request.urlopen(url) 6 html=page.read().decode('utf-8') 7 8 return html 9 10 def getimg(html): 1

Python爬虫爬数据写入到EXCEL中

Python抓数据写到EXCEL中.以前都是写到txt中然后再导入到excel.现在直接写到excel中. #coding=utf-8 import xlwt import requests from bs4 import BeautifulSoup import sys reload(sys)   sys.setdefaultencoding('utf8')  #打开excel文件 data=xlwt.Workbook() #获取其中的一个sheet table=data.add_sheet(

Python爬虫爬数据写入到文件

#coding=utf-8 import requests from bs4 import BeautifulSoup import sys reload(sys)   sys.setdefaultencoding('utf8')  r=requests.get('http://html-color-codes.info/color-names/') html=r.text #print html soup=BeautifulSoup(html,'html.parser') trs=soup.f

Python爬虫爬取数据的步骤

爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多网页的变化规律,基本上都是只有小部分有所变化,如:有的网页只有网址最后的数字在变化,则这种就可以通过变化数字将多个网页链接获取: 2.把获取得到的多个网页链接存入字典,充当一个临时数据库,在需要用时直接通过函数调用即可获得: 3.需要注意的是我们的爬取并不是随便什么网址都可以爬的,我们需要遵守我们的

利用Python实现爬去彩票网站数据&amp;mdash;&amp;mdash;小样

写这篇文章纯属自娱自乐. 主要是近期在自学如何利用Python解决IT运维的一些问题时,总是不得其门而入,为了增加学习兴趣,就想通过完成一个小小有趣的爬虫程序激励下自己,同时也把这次经历跟各位道友分享下. Technorati Tags: Python,爬网,彩票,数据,夏明亮 首先申明,本人不是专职coding的,所以,代码部分如果不符合专业审美,还请多多包涵:俺就是纯粹以实习那目标为基础的小白一枚:思路为先,抛砖引玉~ 步骤一:利用搜索引擎找到你需要的信息的网页资源 1. 打开百度搜索"彩票