吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2505|回复: 14
收起左侧

[学习记录] 【笔记】python对php型网站爬取---介绍一下自己学习爬虫时遇到的一个困难

  [复制链接]
1151749862 发表于 2022-2-3 20:50
最近自己编了个python小程序,目的是爬取celestrak里的星座轨道根数
目标网站:CelesTrak: Search Satellite Catalog    “celestrak.com/satcat/search.php”
可以注意到,这是一个后缀为php的网站
大家可以自己用常规方式get一下,看看能不能返回正确的搜索结果
我的返回结果是空白,困扰了一天。

后面经过网上查找方法,找到了一个网站,可以将crul转换为python编程语言
Convert curl commands to code (curlconverter.com)

如图复制

如图复制

如图将网站刷新一下找到:网络-全部-对应请求 ,把它的curl(bush)进行复制

再粘贴到curl commands 这一栏 右边选择python 他就会生成对应的python请求代码

[Python] 纯文本查看 复制代码
import requests

headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'Origin': 'http://celestrak.com',
    'Content-Type': 'application/x-www-form-urlencoded',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.76',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Referer': 'http://celestrak.com/satcat/search.php',
    'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
}

data = {
  'IDENT': 'SATNAME',
  'SATNAME_TEXT': 'YAOGAN',
  'INTDES_TEXT': '',
  'CATNR_TEXT': '',
  'MAX': '500',
  'PAYLOAD': '1',
  'B1': '\u63D0\u4EA4'
}

response = requests.post('http://celestrak.com/satcat/search-results.php', headers=headers, data=data, verify=False)


这一串代码就可以代替正常爬虫中的请求那一部分

只要在后面加上
[Python] 纯文本查看 复制代码
soup = BeautifulSoup(response.content, "html.parser")  # 处理网站返回的数据
data1 = soup.find_all('tr', align='center')

这两行代码,data1就是自己要找的那部分数据对应的html了(BeautifulSoup强无敌!!!)

获得数据

获得数据


这个问题搞得我很烦,还好最后解决了,希望能帮助到大家

附程序完整源码 52pojie.zip (1.33 KB, 下载次数: 8)

免费评分

参与人数 4吾爱币 +2 热心值 +4 收起 理由
liqualife001 + 1 谢谢@Thanks!
烟花非易冷 + 1 热心回复!
刘留留 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
llwen2 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

vethenc 发表于 2022-2-3 23:49
感谢分享实战经验
tbloy 发表于 2022-2-4 01:47
linzhengjin 发表于 2022-2-4 03:07
刘留留 发表于 2022-2-4 06:44
分析的很详细,感谢分享
烟花非易冷 发表于 2022-2-4 07:02
很实用,感谢分享
weizhuqiang 发表于 2022-2-4 07:54
感谢分享实战经验
zxl7725103 发表于 2022-2-4 09:58
就是一个提取请求头的转化方法,其他网站的爬取都可以用这种方式。不用自己再写了请求头了
马了顶大 发表于 2022-2-4 10:45
本帖最后由 马了顶大 于 2022-2-4 10:51 编辑

额,没看懂什么意思,我没用你后面说的那个转换curl的网站,试了试直接抓包celestrak网站写爬虫也能返回结果啊
[Python] 纯文本查看 复制代码
import requests
from lxml import etree

url = 'http://celestrak.com/satcat/search-results.php'
head = {
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Host': 'celestrak.com',
    'Referer': 'http://celestrak.com/satcat/search.php',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'

}
search = 'YAOGAN'
data = 'IDENT=SATNAME&SATNAME_TEXT={}&INTDES_TEXT=&CATNR_TEXT=&MAX=500&PAYLOAD=1&B1=Submit'.format(search)
res = requests.post(url, headers=head, data=data)
html = etree.HTML(res.content)
re_list = html.xpath('//*[@id="tableID"]/tbody/tr')
for re in re_list:
    print(re.xpath('./td[3]/text()')[0])


返回结果是
123.jpg


独存 发表于 2022-2-4 15:24
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表