文档章节

Python 爬取汽车领域问答语料(自用)

o
 osc_1ee7cxmx
发布于 2018/08/06 15:24
字数 248
阅读 9
收藏 0

精选30+云产品,助力企业轻松上云!>>>

#coding=utf-8

import time
import requests
from lxml import etree
from pymongo import MongoClient
from selenium import webdriver

client = MongoClient("IP", 27017)
db = client["Automobile"]
collection = db["wenda_autohome"]
db.authenticate("","")

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")

def splist(l, s):
    return [l[i: i+s] for i in range(len(l)) if i%s==0]

for i in range(36726, 40202):  
    # url = 'https://wenda.autohome.com.cn/topic/detail/40195'
    url = 'https://wenda.autohome.com.cn/topic/detail/' + str(i)

    time.sleep(1)
    driver.get(url)
    html = driver.page_source
    tree = etree.HTML(html)

    question = tree.xpath("//h1[@class='card-title']/text()")
    answer_list = tree.xpath("//a[@class='text']/text()")
    if question==[] or answer_list==[]:
        continue

    n = 0
    for j in answer_list:
        
        n += 1
        answer_list[n-1] = j[41:-37]
        if answer_list[n-1][-3:]!='...':
            continue

        s = "//div[@class='card-reply-wrap'][" + str(n) + "]//a[@class='more']"
        try:
            driver.find_element_by_xpath(s).click()
            
            html_answer = driver.page_source
            tree_answer = etree.HTML(html_answer)
            answer_part = tree_answer.xpath("//div[@class='answer-content']/div/div[@class='ahe__area ahe__block ahe__text']/p/text()")
            answer = ''
            for item in answer_part:
                answer += item

            answer_list[n-1] = answer
            time.sleep(1)
            driver.get(url)
        except Exception as e:
            print e 
            continue

    keywords = tree.xpath("//ul[@class='card-tag-list']/li/text()")
discription_list
= tree.xpath("//div[@class='ahe__area ahe__block ahe__text']/p/text()") discription = '' for j in discription_list: discription += j zancai = tree.xpath("//span[@class='js-praise-count']/text()") zancai_list = splist(zancai, 2) dc = {} dc['keywords'] = keywords dc['question'] = question[0] dc['discription'] = discription dc['answer'] = answer_list dc['zancai'] = zancai_list dc['url'] = url collection.insert(dc) driver.close()

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

es集群笔记

es 集群的默认配置是当集群中的某个节点磁盘达到使用率为 85% 的时候, 就不会在该节点进行创建副本, 当磁盘使用率达到 90% 的时候, 尝试将该节点的副本重分配到其他节点. 当磁盘使用率达到 ...

gaolongquan
12分钟前
10
0
VS Code编写Vue过程中出现空格不规范报错的问题

报错内容: 解决办法: 1.注释或删除这些代码 注释掉之后(重启vue服务),再进行编写的时候,空格不规范的情况下就不会再报错了。 2.如果没在webpack.dev.conf.js文件中找到注释代码就在webpack...

安然_oschina
15分钟前
16
0
域名防封_域名防红_微信域名防拦截

最近微信开始大封杀,不知道原因是什么,可能是因为违规网站太多了吧,很多网站都被错杀了,下面我们聊一下怎样才能避免域名被封杀呢。 在各种不同的域名当中,能够做出了更适合的选择,这些...

戚馨逸
19分钟前
13
0
数据结构(六)——循环链表

一、循序链表简介 1、循环链表的定义 循环链表的任意元素都有一个前驱和一个后继,所有数据元素在关系上构成逻辑上的环。 循环链表是一种特殊的单链表,尾结点的指针指向首结点的地址。 循环...

rainbowcode
22分钟前
13
0
六边形寻路格子绘制

using System.Collections;using System.Collections.Generic;using UnityEngine;public class AdventureIsland : MonoBehaviour{ static AdventureIsland instante; pu......

江湖令
23分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部