当前位置:   article > 正文

python网络爬虫之爬取静态网页_静态网页爬取数据python代码

静态网页爬取数据python代码

目录

一.抓取静态网页的实现技术

二.发送基本请求

1.发送GET请求

携带url请求的URL中携带参数:

不携带url请求的URL中携带参数:

2.发送POST请求

三.定制请求头

四.爬取百度贴吧ID小例子

五.静态爬取网站思路


一.抓取静态网页的实现技术

 Requests库的安装

--使用cmd打开命令提示符,输入pip install requests

二.发送基本请求

1.发送GET请求

在Requests库中,GET请求通过调用get()函数发送,该函数会根据传入的URL构建一个请求(每个请求都是Request类的对象),将该请求发送给服务器。get()函数声明如下:

get(url , params = None , headers = None , cookies = None,

                                                   verify = True , proxies = None , timeout = None , **kwargs)

·url :表示请求的URL

·params :表示请求的查询字符串

·headers :表示请求的请求头,该参数只支持字典类型的值

·cookies :表示请求的Cookie信息,该参数支持字典或Cookie Jar类对象

·verify :表示是否用SSL证书,默认值为True

·proxies :用于设置代理服务器,该参数之支持字典类型的值

·timeout :表示请求网页时设定的超时时长,以秒为单位

携带url请求的URL中携带参数

在调用get()函数发送GET请求是只需要给url参数传入指定的URL即可。

方式一:

import requests
base_url='https://www.baidu.com/s'
param='wd=python'
full_url=base_url+'?'+param #拼接完整的URL

#根据URL构造请求,发送GET请求,接收服务器返回的响应信息

response=request.get(full_url)

#查看响应码

print(response.status_code)

方式二:

import requests
base_url='https://www.baidu.com/s'

wd_params={'wd':'python'}

#根据URL构造请求,发送GET请求,接收服务器返回的响应

response=requests.get(base_url,params=wd_params)

#查看响应码

print(response.status_code)

不携带url请求的URL中携带参数

在调用get()函数发送GET请求时只需要给url参数传入指定的URL即可。

import requests

#准备URL

base_url='https://www.baidu.com'

#根据URL构造请求,发送GET请求,接收服务器返回的响应信息

response=requests.get(url_base_url)

#查看响应码

print(response.status_code)


2.发送POST请求

get(url , data = None , headers = None , cookies = None , verify = True ,

                                                    proxies = None , timeout = None , json=None ,**kwargs)

·data :可选参数,表示请求数据。该参数可以接收3种类型的值,分别为字典、字节序列和文件对象。当参数值为字典时,字典的键为请求数据的字段,字典的值为请求数据中该字段对应的值,例如 {"ie":"utf-8","wd":"python"}。

·json :可选参数,表示请求数据中的JSON数据。

import requests

url = 'http://baidu.com/api'

data = {'key': 'value'}

response = requests.post(url, data=data)

print(response.text)

举个example:

在上述代码中,首先发送POST请求并获取响应。然后检查响应的状态码是否为200(表示成功),如果是的话,就会继续解析响应数据。这里响应是JSON格式,所以使用response.json()方法将其解析为Python对象。

如果响应状态码不是200,表示请求失败,我们可以打印出状态码以进行进一步处理或调试。

三.定制请求头

寻找请求头,可以使用浏览器的开发者工具来查看网络请求的头部信息。具体步骤如下:

  1. 打开浏览器,并进入你想要查看请求头(Headers)的网站。
  2. 按下键盘上的 F12 键,或者右键点击页面上的任何元素,选择“检查”或“开发者工具”。
  3. 在开发者工具中,选择“Network”或“网络”选项卡。
  4. 在网络选项卡中,你可以看到所有的网络请求。找到你想要查看的请求,并点击它。
  5. 在右侧的面板中,你可以看到请求的详细信息,包括请求头(Headers)和响应头(Response Headers)。

提取请求头的重要部分

四.爬取百度贴吧ID小例子

  1. import requests
  2. from bs4 import BeautifulSoup
  3. # 定义要爬取的贴吧URL
  4. url = 'https://tieba.baidu.com/p/xxxxxx' # 将xxxxxx替换为你要爬取的帖子ID
  5. # 发送HTTP请求并获取网页内容
  6. headers = {
  7. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
  8. }
  9. response = requests.get(url, headers=headers)
  10. html_content = response.text
  11. # 使用BeautifulSoup解析HTML内容
  12. soup = BeautifulSoup(html_content, 'html.parser')
  13. # 找到帖子列表所在的HTML标签
  14. thread_list = soup.find('div', {'class': 'threadlist'})
  15. # 提取帖子信息并打印
  16. for thread in thread_list.find_all('li'):
  17. title = thread.find('a', {'class': 'title'}).text.strip()
  18. print(title)

五.静态爬取网站思路

1. 选择合适的爬虫框架:可以使用 Python 中的一些常用爬虫框架,如 Scrapy、BeautifulSoup 或 Selenium 等。

2. 分析网页结构:在开始编写爬虫代码之前,需要了解百度贴吧的网页结构。可以通过浏览器的开发者工具来查看网页的 HTML 和 JavaScript 代码,找到包含贴吧数据的元素。

3. 获取贴吧数据:使用选择器(如 CSS 选择器或 XPath 表达式)来定位和提取贴吧数据。可以从网页中提取出贴吧的标题、链接等信息。

4. 处理数据:在获取到数据后,可能需要进行一些处理,例如去除 HTML 标签、转换数据格式等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/1006805
推荐阅读
相关标签
  

闽ICP备14008679号