gpt4 book ai didi

python - Scrapy - 如何使用 python 抓取网络链接中的网络链接?

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:06 24 4
gpt4 key购买 nike

我正在尝试抓取:

https://webmd.com/oral-health/oral-lichen-planus#1来自webmd网站的以下网页代码:

<li class="global-nav-sign-in global-nav-hide-mobile" data-metrics-module="">
<a href="https://member.webmd.com/signin?appid=1&amp;returl=https://www.webmd.com/oral-health/oral-lichen-planus#1" data-metrics-link="reg-login">Sign In</a>
</li>

我使用以下 scrapy 代码来实现此目的:

import scrapy
import re
import string
import pandas as pd

class HealthItem(scrapy.Item):
link = scrapy.Field()


def urls_getter():
fname = "/home/phil/fd/webmd/health.csv"
pds = pd.read_csv(fname)
pds_link = pds['link']
pds_link = pds_link.drop_duplicates(keep = "first", inplace = False)
pds_link = pds_link.tolist()
return pds_link


class SymptommdSpider(scrapy.Spider):
name = "symptommd"
allowed_domains = ["webmd.com"]
start_urls = urls_getter()
def parse(self, response):
titles = response.xpath('//li[contains(@class, "global-nav-sign-in")]/a[contains(@href, "https:")]')
for title in titles:
item = HealthItem()
item['link'] = title.xpath('@href').extract()
yield item

但是,此代码仅获取 a href 的前部部分。即https://member.webmd.com/signin 。如何仅获取第二个网络链接?

最佳答案

正如评论中提到的,URL 是用 Javascript 构建的。如果您查看原始 HTML,它看起来像这样:

Raw HTML

这真的很重要吗?这个网址https://member.webmd.com/signin将您引导至有效页面。

如果这很重要,那么您需要一些额外的逻辑来从 Javascript 中提取信息,或者您可以在代码中硬编码完整的 URL。

关于python - Scrapy - 如何使用 python 抓取网络链接中的网络链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com