爬虫流程及方法03(搜索引擎爬取)二叉树上的我 发布于 2020-04-01 收录于 Python 爬虫 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/usr/bin/env python3 #本篇介绍抓取含搜索引擎的爬虫 #UA检测:门户网站检测对应请求的身份标识 #UA:useragent(请求载体的身份标识) #UA伪装:伪装游览器 import requests a = True while a: # UA伪装:伪装游览器,将对应user-agent封装到字典headers中 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36' }#这里可以使用各种headers,包括ios或者安卓,模拟手机或平板登录 url = "https://www.sogou.com/web?" kw = input('key words:')#输入搜索所需要的关键词 # step1:处理url携带的参数:封装到字典中 param = { 'query': kw } res = requests.get(url=url, params=param, headers=headers)#几乎所有大型搜索引擎都是get请求,若属于某些私密的网址搜索可能需要post请求等加密传输方式 # 对指定url发起的请求对应的url是带参数的,请求过程中处理了参数 page_text = res.text #text处理数据 filename = kw + '.html'#命名文件 with open(filename,'w',encoding='utf-8') as fp: #该语法自动创建文件并自动打开关闭文件,需要注意的是该文件在本爬虫文件所在文档内,需要更精确的存储位置推荐使用os库 fp.write(page_text)#输入数据 print(filename, '保存成功') a = False
爬虫流程及方法02(Beautiful Soup解析页面)二叉树上的我 发布于 2020-03-31 收录于 Python 爬虫 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/env python3 #对某论坛的爬取 import requests from bs4 import BeautifulSoup import time #需求:爬取网站标题及详情页的文本 a = True while a:#可转变成实时循环#对首页的页面数据进行爬取 url = "https://www.lolichan.vip/" headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36' } page_text = requests.get(url=url, headers=headers).text#获取响应数据得加text,不然获取的是响应对象 #在首页中解析出章节标题和详情页URL #1.实例化BeautifulSoup对象,需要将页面源码加载到该对象中 soup = BeautifulSoup(page_text, 'lxml') #解析章节标题与详情页url div_list = soup.select('.node-body > div > h3 > a')#使用select层级选择器 fp = open('./xiangqing.text','w',encoding='utf-8')#创建文档及设定只写w和编码utf-8 for div in div_list: time.sleep(填入休息时间)#防止频繁的请求链接失去响应 title = div.string#获得该标签下的所有文本 detail_url = 'https://www.lolichan.vip/' + div['href']#获得详情页的url #对详情页发起请求,解析出章节内容 detail_page_text = requests.get(url=detail_url, headers=headers).text #解析出详情页中相关的章节内容 detail_soup = BeautifulSoup(detail_page_text,'lxml') div_tag = detail_soup.select('.structItem-title > a') #原来的class属性得用class_表示,不然会报错(class是保留字) content = []#设定空列表 for a in div_tag: content.append(a.text)#往空列表内装填 fp.write(title+':'+str(content)+'\n')#str()使content对象变为字符串形式 print(title, '爬取成功')#响应成功 a = False #号符号是python注释的前置符号
爬虫流程及方法01(入门准备及Request库使用)二叉树上的我 发布于 2020-03-20 收录于 Python 爬虫爬虫究竟是合法还是违法的?在法律中是不被禁止 具有违法风险 请善意爬虫切勿恶意爬虫爬虫带来的风险可以体现在如下2方面:爬虫干扰了被访问网站的正常运营 爬虫抓取了受到法律保护的特定类型的数据或信息
安装python第三方库的小技巧二叉树上的我 发布于 2020-03-15 收录于 Python直接放代码 1 2 3 4 5 6 7 8 9 10 11 12 import os libs = { "requests","jieba","beautifulsoup4",\ "django","flask",\ "此处填写你需要下载的库的名称,注意大小写并拼写正确,样式如上面例子","pandas" } try: for lib in libs: os.system('pip install '+lib) print("Successful") except: print('error') os.system(command)command 为要执行的命令,近似于Windows下cmd窗口中输入的命令。
本主题使用小技巧作者 发布于 2019-01-01 收录于 博客建站相关创建新文档1 hugo new posts/名字.md 引用B站视频1 注意如果要绑定第三方域名给github-pages,每次更新博客都需要重新绑定!