import requests
link = 'http://www.santostang.com'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; windows NT 6.1; en-US; rv:1.9.1.6) Gecko/2091201 FireFox/3.5.6'}
req_1 = requests.get(link, headers = headers)
print (req_1.text)
效果是打印出link所在网址的源代码(HTML)。
首先import requests,使用requests.get(link,headers=headers)获取网页。值得注意的是:
(1) 用requests的headers伪装成浏览器访问。headers(字典类型)中的User-Agent(键)意为浏览器标识,后面一长串则是FireFox(火狐浏览器)浏览器标识中的一个。
(2) req_1是requests的Response回复对象,可以从中获取想要的信息。req_1.text是获取的网页内容代码。
浏览器标识User-Agent——浏览器标识(UA)可以使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件,从而判断用户是使用电脑浏览还是手机浏览,让网页作出自动的适应。
可理解为网站通过对ua标示的判别,可按相应的格式进行网页的布局调整,使用户获得更好的浏览体验。
提取想要的数据,示例:提取第一个标题
import requests
from bs4 import BeautifulSoup
link = 'http://www.santostang.com'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; windows NT 6.1; en-US; rv:1.9.1.6) Gecko/2091201 FireFox/3.5.6'}
req_1 = requests.get(link, headers = headers)
soup_1 = BeautifulSoup(req_1.text, "lxml") #使用BeautifulSoup解析这段代码
title_1 = soup_1.find("h1", class_ = "post-title").a.text.strip()
print(title_1)
运行结果如下
而这是网页上对应部分的代码(只看第一个<>内的内容即可)再看看soup_1.find(“h1”, class_ = “post-title”).a.text.strip()。
<h1 class="post-title"><ahref="http://www.santostang.com/2018/07/15/4-3-%e9%80%9a%e8%bf%87selenium-%e6%a8%a1%e6%8b%9f%e6%b5%8f%e8%a7%88%e5%99%a8%e6%8a%93%e5%8f%96/">第四章 – 4.3 通过selenium 模拟浏览器抓取
with open("title.txt", "a+") as f:
f.write(title_1)
f.close()
这时候的title.txt位于和执行文件的同一文件夹下(也就是相对路径)。pyCharm如下图建立项目时
,要使用requests等模块选择files》settings》project:[项目名]》project interpreter,可以看到最右侧有个‘+’号,
点击后输入要使用的内容然后搜索最后install package
所以嫌麻烦的话一开始选第二个就是了。(指第一张图的单选选第二项,就是那个Exi……)