干货内容:python网络爬虫学习笔记(4)静态网页抓取(一)知识

优采云 发布时间: 2022-09-21 18:07

  干货内容:python网络爬虫学习笔记(4)静态网页抓取(一)知识

  1 信息 2 笔记 静态网页抓取(一)知识

  静态网页是纯HTML格式的网页,使用AJAX动态加载网页的数据不一定会出现在HTML代码中。

  对于静态网页,前面使用的Requests库非常有用。这次主要是详细介绍一下。

  Requests库使用前期工作(简述),安装介绍在notes(1)中,至于pycharm中使用库之前的工作,notes(3)有一个介绍,简而言之)首先是将库安装到项目中,这里单独粘贴其安装代码:

  pip install requests

  请求库 - 1 获取响应内容

  通常这样使用,返回一个响应响应对象(req是变量名,或者对象名):

  req = requests.get(url, 其它参数(可选择))

  req.encoding

req.status_code

req.text

……

  import requests

key_dict = {'key1': 'value1'}

req = requests.get('http://httpbin.org/get', params=key_dict)

  {

"args": {

<p>

"key1": "value1",

"key2": "value2"

},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.22.0"

},

"origin": "223.167.175.166, 223.167.175.166",

"url": "https://httpbin.org/get?key1=value1&key2=value2"

}

</p>

  POST 请求

  这段原文很清楚,我分段粘贴。

  除了GET请求外,有时还需要发送一些以表单形式编码的数据。比如登录时,请求是POST,因为如果使用GET请求,会在URL中显示密码,非常不安全。

  如果要实现POST请求,只需将字典传递给Requests中的data参数,请求时数据字典会自动编码为表单。

  def data_use():

key_dict = {&#39;key1&#39;: &#39;value1&#39;, &#39;key2&#39;: &#39;value2&#39;}

# 注意是post和data的组合

req = requests.post(&#39;http://httpbin.org/post&#39;, data=key_dict)

print(req.text)

<p>

</p>

  {

"args": {},

"data": "",

"files": {},

"form": {

"key1": "value1",

"key2": "value2"

},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Content-Length": "23",

"Content-Type": "application/x-www-form-urlencoded",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.22.0"

},

"json": null,

"origin": "223.167.175.166, 223.167.175.166",

"url": "https://httpbin.org/post"

}

  入门到精通:java网页爬虫测试源码

  StringBuffer 缓冲区=new StringBuffer();

  网址 urlObj=null;

  URLConnection uc=null;

  InputStreamReader in=null;

  BufferedReader reader=null;

  试试{

  //建立网络连接

  urlObj=新网址(url);

  //打开网络连接

  uc=urlObj.openConnection();

  //创建网络输入流

  in=new InputStreamReader(uc.getInputStream(), encoding);

  //缓冲写文件流

  reader=new BufferedReader(in);

  //临时变量

  

  字符串 tempLine=null;

  //循环读取文件流

  while((tempLine=reader.readLine())!=null){

  //循环追加数据

  buffer.append(tempLine+"\n");

  }

  }catch(异常 e){

  e.getStackTrace();

  System.out.println("网页抓取失败,连接超时!");

  }终于{

  如果(在 !=null){

  试试{

  in.close();

  }catch(异常 e){

  e.getStackTrace();

  }

  

  }

  }

  返回缓冲区.toString();

  }

  public static void main(String[] args) {

  System.out.println("开始爬取网页源码");

  //根据URL和页面的代码集获取网页的源代码

  字符串 url="";

  字符串编码="utf-8";

  String str=getHtmlResourceByURL(url, encoding);

  System.out.println(str);

  //解析源码

  //解析需要下载的内容部分

  }

  }

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线