python网络爬虫学习笔记(3)简单爬虫

1 资料

  • 《Python网络爬虫从入门到实践》唐松,陈志铨。主要面向windows平台下的python3。
  • 百度知道

2 笔记

2-1 简单爬虫

  1. 示例一
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是获取的网页内容代码。

  1. 浏览器标识User-Agent——浏览器标识(UA)可以使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件,从而判断用户是使用电脑浏览还是手机浏览,让网页作出自动的适应。
    可理解为网站通过对ua标示的判别,可按相应的格式进行网页的布局调整,使用户获得更好的浏览体验。

  2. 提取想要的数据,示例:提取第一个标题

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/">第四章 &#8211; 4.3 通过selenium 模拟浏览器抓取
  1. 示例一的保存(txt)
    在示例一后面加上
    with open("title.txt", "a+") as f:
       f.write(title_1)
       f.close()
    
    这时候的title.txt位于和执行文件的同一文件夹下(也就是相对路径)。

2-2 pyCharm 导入模块前置工作

pyCharm如下图建立项目时
python网络爬虫学习笔记(3)简单爬虫_第1张图片
,要使用requests等模块选择files》settings》project:[项目名]》project interpreter,可以看到最右侧有个‘+’号,
python网络爬虫学习笔记(3)简单爬虫_第2张图片
点击后输入要使用的内容然后搜索最后install package
python网络爬虫学习笔记(3)简单爬虫_第3张图片
所以嫌麻烦的话一开始选第二个就是了。(指第一张图的单选选第二项,就是那个Exi……)

你可能感兴趣的:(python)