当前位置:首页 > 百科

python获取网页信息

```html python获取网页信息

用Python抓网页数据,网页最直接的信息方式就是requests加BeautifulSoup。别想复杂了,网页三行代码就能把某个页面的信息标题抠出来。去年我帮朋友盯一个二手相机报价,网页写了个小脚本每半小时跑一次,信息用的网页就是这套组合。requests负责把网页源码整个拽下来,信息BeautifulSoup负责从乱七八糟的网页HTML里找你要的东西。

先装库。信息命令行敲pip install requests beautifulsoup4,网页完事。信息然后看这段:

import requests from bs4 import BeautifulSoup url = "https://example.com" resp = requests.get(url) resp.encoding = 'utf-8' # 有时候不写这句中文会乱码 soup = BeautifulSoup(resp.text,网页 'html.parser') print(soup.title.text) 

resp.text拿到的是字符串形式的HTML,soup.title.text直接取标题文字。信息就这么简单。网页但实际抓取时经常碰到编码问题——有些网站声明gb2312,实际却用utf-8,requests猜错就满屏问号。我习惯手动指定resp.encoding,或者用resp.content配合BeautifulSoup的from_encoding参数。

找元素的方法决定了你写脚本的效率。BeautifulSoup支持CSS选择器,soup.select('.price')能拿到所有class为price的元素。想找特定表格里的第三行?soup.select('table tr:nth-of-type(3)')。比正则表达式友好太多。不过要注意,select返回的是列表,哪怕只有一个结果也得用[0]取出来。

有些页面内容是用JavaScript动态加载的。requests拿到的源码里可能根本没有你要的数据——因为浏览器执行完JS后才把数据塞进DOM。这时候要么分析XHR请求直接抓API(推荐),要么上Selenium模拟浏览器。我抓过一个天气预报站,数据藏在