最近在使用requests想爬公司内的一个网页,但那个网页里面有text box 跟 drop down list 需要填写, 我在网络上搜索了一下 大概是要用requests post的function来爬。
1,为什么我用百度百科做了一个例子,但没办法得到结果呢?
2. 要怎么将drop down list的值传入post的data呢?
import requests
req = requests.post('https://www.baidu.com/', data = {'word':'tennis'})
print(req.status_code)
print(req.url)
print(req.text)
返回码是302,被请求跳转了,应该是百度不接收这种格式的参数。
你先了解下url传参的方式,还有get/post区别再试吧。
哇,你的想法可真难猜,细度了下你的问题描述,总算是找到原因了。
import requests
req = requests.post('https://baike.baidu.com/', data = {'word':'tennis'})
# req = requests.post('https://www.baidu.com/', data = {'word':'tennis'})
req.encoding = req.apparent_encoding
print(req.status_code)
print(req.url)
print(req.text)
你用的百度百科做例子,你请求百度肯定没结果,细节问题。
可以用谷歌浏览器F12开发者工具,看看接口是什么样的,然后再通过爬虫进行爬取。
import requests
data = "eyJkYXRhIjoiYTBhZDUyZjQwZWQ4OWZjYjI1NmQ0MDg2ZDJlMjhiNTg5OTkyNzZhZTk4YWU4ODM5YmZkOGVkNDU3MGI2YjJjOWY5YTM0N2Y5OGUxMWU4OGM4YTk2MDFlOWVlNzRkMTM0NmIzNTYzYzk2MmNmNzU0MTBlYjdmNWIxNjlhOGEwODk5MzE5MmMzNjQ0ZGQ5NzRkOWFhYjAxOTAwMDc4NTVjYjFkOTk4OTdmMjc0YjNiY2EwMDExYWQ4NDAwM2JlNmY4ZmUxZjU3OGZjOTk1OWU2ZDlmNjFlMGJkMDNkYmQ1NTMwODZlYjNiN2I1MTE3NGExZTFlNzc2MTU5OWMwMzJmYzkwMDk4ODY3OGE2YjNhZWY2YjdhYmY3MzMwM2UwNDcyOWZlM2YyYjllZjRjYTljNTMwZmFkOWM4Y2E5MmZhNTg3NTk4NzVlZmFjOTc2MTJkMzA0ZTFmNWY0MWNiZGQ4NjYwNzkwZmYwNDVjNTA0Y2FlYjI3ZjhkZWJjNzZjY2EwZGRhMTA1NGRlMjRkZTM0NjI5MjAxNDliODRjNTE1YmZlNDcxNjZhMWVlZWZmNWY2ZGI4Y2MyZjhjOGE2NzNiZGE1YmIwNjliMDg0ZGJhZGRhNDlmNmUzNmI5ZmNiZTkwZmQwMzZiMTVmNTIwMDY3NzE0ZDBlMjY5ZjliNjI2YWFkYTNhZGFkYjBlZDc3ZjY3MTU5MzQ5OWRiNGNlNmRiNzIyYTZlYjA3ZmM4MmJiNDY0NTliNzkxNThlYjkwYzhmZDA5MjYyOTI2OWNhZGU5ZDk4NzE3NDNhYTA3Yjc2MTJjMDkzMmUxNTM2YjhlOTcyNWY2OGJlZGQyZjU0NWUyZDgxMzIyZTk2NWFkNjZhZmY0ZWRmNDMwMzYwMWM4M2IxM2E2MTUwYjg0NDJlMDEyZjIyYTg5MThhMDZmNGE5ZGU0OGZmZjIxNGQ5NTBjNjc4MmYyNmFlYzc5MjNiZWYzNjUxZjk4MzJjOTAxNGRkYzgyNWQ4NjA4ZDE1ZDIxOGRhZjdkYTdjMTMwODEyYTZmZmZlNzU5M2M1NjQ4YzU2ZjIyODk0NDM5MjJmYzY5MmQ3NzMyMjcxNGYzNTU0MzE5Nzc2ZTVlMTMxMjUxNzhiMjdkNDA3NWNkZDczYWY3NWY2YWYyMmM0YWMyNDMzNjExNzNiZDU4ZjBjYWQ1NzVkYmY1ZjIxMjY1YmU2MWFjNzE2OTlkYzdkZWVjNGE4ODFkZDBiZGNkZjhlZWQ2MDJlMzI3NTkzZDJjM2Y4OGRjMDJmMWZkNzIzZjBmY2NkNDM2YjcwNGE3NDIxZmE3NDgwMTkwNzRkOTYyNDJhNDQxZTdjYTZiNmY4MWQzOGQzMWU2MTg3MDY5YjA3NmViYTAwYWExOTRlMWQ5ODM5NDViNGI2ODRiNzc4NDg0NTcyNzFiYjVlOTRmMGJjYjY3YzMwY2EzMmUwYjhkYzk5MGY3YWRlMGQ0MWFkZDJmNTc2NGZhYzcyMDk5NGE1OTJkOTk4MjQ3MTUwMDU1NTM2M2JjOWEyMWZmYjBmNjcxOTc0MTBlYTkzMjkwM2EwMzYyN2M0NTMxODBhMzZkMWU1ZDg3YmFkN2VmZDhlMGE0MDcwMjJiN2U0NWUwMDQzYmY0YmFiM2EzYmEzN2UyNmM5NzczOGFkOWM4ODE5NWRjYmUzOTUxOGQ1ZmQxNWVlYWMzZTFmYmMyNWI4NzhlMWM0MWE3YWQ5YTRhNjljZGEzMGQyNzViODgwZjdjNzI5ODE3OWY0MmQ3ZTIzOTNlMmQwOWE2N2RmNTNiMjM4YjdkNmIzMGFkMmEzYzQzYzQ3ZWJhYjgyOGE5YmVkZGU5ZGE5MmRiMWU1NzBiNTc5YWU4MWJlNDZlMjI2MzUxNDg1YjI3NjNhNzkxMzE1ZDA0MWUwZDQ5YmI4ODUxOGQwOTEyNmFmZDc3ZDg1NzQ5NjY2OTdmNGI4NDE2MWQ2MWU5ZmEzNjljNjM4ZjAzNzg0OGJhNjM0MjU0ZDkxYTc2ZDM4ZGE4ZTNkNTAyZWVkMGI3MmVkNjhmZjBkOThkY2EyYzE4NjY3MTg2NmM4OTVjMDQwYzU5ZDY3Y2FiZDM2NjhkYjZjOGY5ZDA4NWI3MDk3MWZkOWZhNTdmY2IxNTJiNjBmYWEwZWExNGY5NWEwNWE5ZDg2Yzc1ZTAyMGI2ZDQ1ZTNhN2YwYWM3OTk3NjNiNzY0MjE3YzAwZTRhMmVhYmRlMDcwYTBkMjMyNzZiNjg4NGYwNTMwNTVjMWYwNDBlYmIwYjQzNGQ3Yjc5NzMyZGVlOWY1OThiM2IxMDQ0YjJjYTIxMmVkOGY0MmU0NDZjMzkzNzA5YTc5NTQ1MzFhODVjNzFkYWNjY2IzYjNkZjA3M2YyMjA0ZTM2YWUwYTcwZmE2M2Q0MjYxYjc4N2VmMzg5MDNmZjcyZjA5MzdlZjQyNzU2Y2QyM2M3M2E3ZTZjZWM2ZDI4MzFhOThlYmZiZjVjMTcyNTQ0MTNhNzZjYjE5MTY5ZjZjZDkwOGI4YWM1M2M1YWQ2OWVjODk2M2ExYTVjOWIzZWRhZjQ5ZDZjMjJhY2U4ZTJhOTEwYWY2ZDRkMmU5ZDBkMzJjMGM1YmJkYjM1YzE4NmFjOTgxNTNiZWY5Y2ZiMzViM2I4MjQxNTQwMTAyMDQzNDVjZmM2YjQzMDliYmI2Nzc1N2M1YjJlYzRlYThkN2U4NzBlMTY0NDQzYzU3M2VmYTkzZjE2YTJmOTRkNDAxYzQwOTI0MjJmMWUxOGFlNWRjMDY1ZDJjODcwYjhjNTRjMDM1Y2RhZWQ0YTU5OTY5OGU0ZjI3Y2RkNTVlYTEzZTM4NGM2ZjQxM2IwOTgxZGRjY2Y3YTNjYmJiZWY1MGQ4YzJmZTdiM2RiNmU4MDlkNGZmNDUyNTEyZTg4YmQ3MGIzYzJiNzlkYmM4NWEyMTI1NWY2MTlmMGMzODBjN2ZhYWZmMmMyMWM3MGI3MzA3ZDQ3YTU3N2U2Y2E2YzFmYjgzYmFjMzU4OGZiNWE0NjllZDVhNjA2NWFhOGNkNDk3ZTVjNTllMTE1ZDkzNDQ4ZmZiMjQwYTM5OGM4M2FhZTg3OTkyNzk4MThlZjRiNTc0MWY2NmI4MWNmMmRlMmU0NzJjM2UyZTk0MDlkZWQ3Mzg4ZDkxZGE1MjE0MDU3NWUwYWY1OWRhNjRjOTk0ZWY2MzJmMGExNmY4ZGM5NDU3N2RlOTIyY2E1MTVmM2Q2MzUwZGMwZGRhNjJmZmQxYTdiYjY5YjM0MWRkMjgxMWRmYzQ1OTI1MjUyZDQ4YzNjZGRmOWNkNjgyYWI0OTY1NzI0M2I0MzQ5NTcyZjk2N2ExOGNiYzNmNjk1MTgyYTlhYjI4NzU3MjMzMGRiZDlhODkzOTcxYjg5YmYxYjRkNWIyYzJkOTVjODBhY2M5MTM3YTM0OTlhYWVkZjMyY2U5ODYxMjQxNDViNDQ3ZjIyNWUwNDEwZWE2MGQyNDVjMTI4YTIyZTk5NGRhODgiLCJrZXlfaWQiOjEwfQ=="
req = requests.post('https://miao.baidu.com/abdr', data=data)
req.encoding = req.apparent_encoding
print(req.status_code)
print(req.url)
print(req.text)
以上是这条POST请求的请求方法