爬取外文工业技术期刊网页源码(自用)

本文介绍了一个使用Python爬取万方数据库中指定期刊2014年文章元数据的具体实现过程。通过爬虫程序自动获取了每篇论文的详细信息,并将其存储到MongoDB数据库中,便于后续的数据分析与利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding=utf-8
import requests
from pymongo import MongoClient
from lxml import etree
import datetime

client = MongoClient("localhost", 27017)

db = client["wanfang"]

collection=db["journal_name"]
collection1=db["journal_foreign_2014"]

db.authenticate("","")

cursor = collection.find()[1]

for i in range(2645):
    name = cursor['name_list'][i]

    num = int(cursor['number_list'][i][1:-1])
    mo = num%50
    count = 0
    if mo!=0:
        count = num/50 + 1
    else:
        count = num/50
    
    for i in range(count):

        url = "http://new.wanfangdata.com.cn/search/searchList.do?searchType=perio&pageSize=50&page="+str(i+1)+u"&searchWord= 摘要:is 起始年:2014 结束年:2014 刊名:" + name + "&order=correlation&showType=detail&isCheck=check&isHit=&isHitUnit=&firstAuthor=false&rangeParame=all"

        result = requests.post(url)
        html = result.text
        tree = etree.HTML(html)
        table = tree.xpath("//div[@class='title']/strong/following-sibling::*[1]/@href")

        for j in table:
            bson = {}
            url1 = "http://new.wanfangdata.com.cn" + j
            result1 = requests.post(url)
            html1 = result1.text
            time = datetime.datetime.now()
            bson['date'] = time
            bson['url'] = url1
            bson['html'] = html1
            bson['year'] = "2014"
            collection1.insert(bson)   

 

转载于:https://www.cnblogs.com/zhangtianyuan/p/8547559.html

### 使用Python实现外文文献信息爬虫 要使用 Python 实现外文文献信息的爬虫,可以通过以下几个方面构建解决方案: #### 1. **明确目标网站** 在开始之前,需要确认目标网站及其结构。例如 PubMed、Google Scholar 或其他学术数据库。需要注意的是,某些网站对外爬取行为有严格的限制甚至法律约束[^1]。因此,在设计爬虫前应仔细阅读目标站点的服务条款。 #### 2. **选择合适的工具库** Python 提供了许多强大的第三方库用于开发网络爬虫,其中最常用的包括 `requests` 和 `BeautifulSoup` 组合,以及更高级别的框架如 Scrapy[^3]。 - 如果只是简单的页面数据提取任务,则可以直接利用 `requests` 获取 HTML 数据并借助 `BeautifulSoup` 解析 DOM 结构。 - 对于复杂项目或者大规模分布式抓取需求来说,Scrapy 是更好的选择因为它内置了很多功能模块比如异步请求处理机制等能够显著提升效率降低资源消耗。 以下是基于 Requests 库的一个基础示例代码片段展示如何发起 HTTP 请求获取网页内容并通过 BeautifulSoup 进行解析: ```python import requests from bs4 import BeautifulSoup def fetch_paper_info(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} try: response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') title_tag = soup.find('h1', class_='title') # 假设文章标题位于 h1 标签下且带有特定类名 abstract_div = soup.find('div', id='abstract') # 同理假设摘要部分在一个 div 中 paper_title = title_tag.string.strip() if title_tag else None paper_abstract = abstract_div.get_text().strip() if abstract_div else None return { "Title": paper_title, "Abstract": paper_abstract } except Exception as e: print(f"Error occurred while fetching data from {url}: ", str(e)) return {} example_url = "https://example.com/some-paper" result = fetch_paper_info(example_url) if result: for key,value in result.items(): print(f"{key}:\n{value}\n") else: print("Failed to retrieve information.") ``` 此段代码定义了一个函数 `fetch_paper_info()` ,它接受 URL 参数表示待访问的目标地址;通过设置 User-Agent 防止被服务器识别为非正常客户端从而拒绝服务;运用 Beautiful Soup 查找指定标签内的文本节点进而抽取所需字段值。 #### 3. **遵循道德准则与法律法规** 当从事任何形式的数据采集活动时都应当尊重原作者版权以及其他知识产权权利人的合法权益不受侵犯的原则。此外还需遵守各国家地区关于个人信息保护方面的规定以防触犯刑法或其他相关规定[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值