有没有更有效的方法来使样式标记中存在的URL成为轴心?

时间:2019-05-26 23:18:32

标签: python html selenium web-scraping beautifulsoup

我想从Tinder抓取文本和图像数据。

问题

我无法有效获取链接到图像的URL。我一直在使用BeautifulSoup的find方法选择包含URL链接的html。但是,此返回值是HTML的很大一部分,而不是有效地索引URL。

如何仅有效获取URL?(在下图中突出显示)

Beautiful Soup Return HTML


当前解决方案

soup=BS(driver.page_source,'lxml')
regex_search_exp= re.compile(
        '^background-image: url\("https://images-ssl.gotinder.com/'+'.{24}/640')


results = soup.find_all("div",
    {"style":regex_search_exp})

url_list=[]
for result in results[2:]:
    x = result.attrs['style'].split()
    x=x[1][5:-3]
    url_list.append(x)

>>>url_list
['https://images-ssl.gotinder.com/5c243b05836277e9092ea335/640x800_CENSORED-9690-42e6-88b1-9a213a3e45d7.jpg',
 'https://images-ssl.gotinder.com/5c243b05836277e9092ea335/640x800_CENSORED-7747-4552-a952-0462e9abb768.jpg',
 'https://images-ssl.gotinder.com/5c243b05836277e9092ea335/640x800_CENSORED-d58d-4402-901e-6c15713c2e4d.jpg']

这成功地向我返回了各个URL的列表,我可以将其转换为所需的嵌套字典结构。但是我想知道是否有一种更有效的方法来访问此url元素。


所需的输出

Tinder允许用户最多上传9张图像。

所需的输出将为我返回一个嵌套的字典,如下所示(请注意,我在URL中添加了CEN以保护用户的数据):

solution = {f"Jenny_{time}":{
    "Images":{
        "Image 1": "https://images-ssl.gotinder.com/53cc38bc163054b238e3173f/640xCEN_d61e06f9-CENS-4ac4-8df0-8ba5a6abf722.jpg",
        "Image 2": "https://images-ssl.gotinder.com/53cc38bc163054b238e3173f/640xCEN_d61e06f9-CENS-4ac4-8df0-8ba5a6abf722.jpg",
        "Image 3": "https://images-ssl.gotinder.com/53cc38bc163054b238e3173f/640xCEN_d61e06f9-CENS-4ac4-8df0-8ba5a6abf722.jpg",
        "Image 4": "https://images-ssl.gotinder.com/53cc38bc163054b238e3173f/640xCEN_d61e06f9-CENS-4ac4-8df0-8ba5a6abf722.jpg",
        "Image 5": 0,
        "Image 6": 0,
        "Image 7": 0,
        "Image 8": 0,
        "Image 9": 0,
              }}}

0 个答案:

没有答案