爬虫類の解像度インフラストラクチャ

基本的な使い方を要求ライブラリー

     
7主な方法要求ライブラリー

 requests.request()  构造一个请求,支撑以下各方法的基础方法
 #获取HTML网页的主要方法,对应于HTTP的GET
 requests.get(url,params,data,headers,proxies,cookies,auth,verify)    #  params,data,headers,proxies,cookies为字典类型,auth为元祖类型,verify为布尔类型参数    
 requests.post()             向HTML网页提交POST请求的方法,对应于HTTP的POST
 requests.head()            获取HTML网页头信息的方法,对应于HTTP的HEAD
 requests.put()         向HTML网页提交PUT请求的方法,对应于HTTP的PUT
 requests.patch()           向HTML网页提交局部修改请求,对应于HTTP的PATCH
 requests.delete()  向HTML页面提交删除请求,对应于HTTP的DELETE

 几种属性

  .states_code      返回状态码
  .text                  返回 html 属性
  .headers           返回头部信息
  .url                      返回请求的链接

基本的な使い方のbeautifulsoupライブラリ

サポートパーサ

サポートPythonの標準ライブラリ、lxmlのHTML、lxmlのXML、html5lib 4種類のパーサー
使用法:あなたがあなた自身のテキストを書く場合は、ソースコードの代わりにBeautifulSoup(マークアップ、「パーサ」)#(注)マークアップは、その後、価格のstrに注意を払う
例:BeautifulSoup(マークアップを、 "lxmlの")

抽出法

ノード選択

フォーマット:テキストノードを解析する
たとえば、:

from bs4 import BeautifulSoup
soup=BeautifulSoup(html,'lxml')
print(soup.title)  #输出的是 bs4.element.Tag
>>>>输出html文本中的title节点及其标签里的内容,

情報を抽出し、ノード属性を取得します。
たとえば:

soup.title.name  #获得title节点的名字,即输出的为title,一般这么用  soup.title.parent.name
soup.title.['name']  #获取title节点name属性的值
soup.title.string  #获得title节点的内容
soup.title.contents  #获取title节点的直接子节点列表(既有子节点,又有子节点包含的文本)(列表类型)
soup.title.children  #获取直接子节点(返回的是生成器类型)
soup.title.descendants  #获取所有子孙节点
soup.title.parent /parents   #获取父节点/祖先节点
soup.title.next_sibling/previous_sibling   #获取下一个/前一个兄弟节点(同级节点)

メソッドのセレクタ

find_all(name, attrs, recursive, text, ** kwargs) ,name表示节点名称、attrs为节点属性、text为节点内的文本 #匹配所有符合条件的节点
find()    #匹配第一个符合条件的节点
例如:soup.find_all('div',id='content',class_='showtxt') #查找所有的属性id为content,class为showtxt的div节点

CSSセレクタ

 select('节点')方法选择节点
 例如:
           title=soup.select('title ')#选择title节点
           point_attrs=title['id'] #获得title节点的id属性的值
           point_text=title.get_text() #获得title节点的文本

クロールの基本的なプロセス

最初のページのソースコードを解析し、使用するブラウザを確認し、HTMLメッセージを解析し、ページのソースコードを取得することです。一般的な要求ライブラリはヨーヨーがurlib、要求を持って使用していました。ライブラリの解析はありますbeaytifulsoup、XPathの、pyqueryを。ストレージ:redies、MongoDBの、mysqlの。

テキストを保存

    save_path = 'D://storyspider' #定义保存路径
    if not os.path.exists(save_path):#如果没有这个路径就创建
        os.mkdir(save_path)
    with open(save_path + '/' + each_name + '.txt', 'a', encoding='utf-8')as f:  #以追加的方式 写入
        f.write('本文网址:' + each_url)

おすすめ

転載: www.cnblogs.com/jacker2019/p/11220946.html