爬虫:页面内容提取,HTML直接输出为Markdown格式,傻瓜式获取作者、发布等等信息
爬虫:页面内容提取,HTML直接输出为Markdown格式,傻瓜式获取作者、发布等等信息
1. 提取HTML中的作者、发布日期与内容信息
pip install gne
# 1. 获取页面文本
import requests
import kuser_agent #pip install kuser_agent
url = 'https://blog.csdn.net/kzl_knight/category_9649204.html'
html = requests.get(url=url,headers={'User-Agent':kuser_agent.get()}).text
# 2.提取关键内容
import gne
extractor = gne.GeneralNewsExtractor()
result = extractor.extract(html)
for key in result.keys():
print(key,':',result[key])
输出结果:
title kzl_knight的博客
author kzl
publish_time 2020-06-08 10:22:48
content 原创 …
2. 把HTML转成Markdown的文本
# 1. 获取整个页面数据
import requests
import kuser_agent
url = 'https://blog.csdn.net/kzl_knight/article/details/103187223'
html = requests.get(url=url,headers={'User-Agent':kuser_agent.get()}).content
# 2. 提取正文中的HTML文本
from bs4 import BeautifulSoup
bs = BeautifulSoup(html)
text = bs.find(attrs={'id':'article_content'}).prettify()
# 3. 将HTML文本转成Markdown格式
import html2text
ht = html2text.HTML2Text()
# 一般的参数设置
ht.bypass_tables = False
ht.mark_code = True
ht.code = True
# --------------
result = ht.handle(text)
print(result)
以下为输出结果————————————
【selenium】无界面浏览器使用代理IP
* 1. 代理IP的选择
- 代码实现
1. 代理IP的选择
无界面浏览器使用的代理IP相对于urllib,requests,scrapy使用的代理要更严格
原因在于:
- 无界面浏览器更换代理IP没有普通模块更换那么方便,所以代理IP的生命周期尽可能要长些
- 无界面浏览器会加载更多的静态资源,对代理IP的并发量有压力,所以应该选择支持并发量高的代理
所以:SOCK5是无界面浏览器的首选
2. 代码实现
[code]
from selenium import webdriver
from selenium.webdriver.chrome.options import Options设置代理
chrome_options = Options()
chrome_options.add_argument(’–proxy-server=http://119.114.77.174:24122’) # 注意这里不能有空格driver = webdriver.Chrome(
executable_path=‘C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe’,
options=chrome_options
)driver.get(‘http://www.baidu.com’)
[/code]